diff -Nru vdr-1.3.33-orig/epg.c vdr-1.3.33/epg.c
--- vdr-1.3.33-orig/epg.c	Fri Sep  9 17:14:11 2005
+++ vdr-1.3.33/epg.c	Mon Sep 26 14:57:04 2005
@@ -230,6 +230,14 @@
   return buf;
 }
 
+cString cEvent::GetWeekdayString() const
+{
+   char buf[4];
+   struct tm tm_r;
+   strn0cpy(buf, WeekDayName(localtime_r(&startTime, &tm_r)->tm_wday), sizeof(buf));
+   return buf;
+}
+
 void cEvent::Dump(FILE *f, const char *Prefix, bool InfoOnly) const
 {
   if (InfoOnly || startTime + duration + Setup.EPGLinger * 60 >= time(NULL)) {
diff -Nru vdr-1.3.33-orig/epg.h vdr-1.3.33/epg.h
--- vdr-1.3.33-orig/epg.h	Sun Sep 11 14:54:30 2005
+++ vdr-1.3.33/epg.h	Mon Sep 26 14:57:04 2005
@@ -87,6 +87,7 @@
   cString GetTimeString(void) const;
   cString GetEndTimeString(void) const;
   cString GetVpsString(void) const;
+  cString GetWeekdayString(void) const;
   void SetEventID(u_int16_t EventID);
   void SetTableID(uchar TableID);
   void SetVersion(uchar Version);
diff -Nru vdr-1.3.33-orig/menu.c vdr-1.3.33/menu.c
--- vdr-1.3.33-orig/menu.c	Sun Sep 25 15:37:21 2005
+++ vdr-1.3.33/menu.c	Mon Sep 26 14:57:04 2005
@@ -1078,6 +1078,23 @@
   SetText(buffer, false);
 }
 
+// --- cMenuScheduleSeparator ------------------------------------------------
+
+class cMenuScheduleSeparator : public cOsdItem {
+public:
+  const cEvent *event;
+  cMenuScheduleSeparator(const char *DateString);
+};
+
+cMenuScheduleSeparator::cMenuScheduleSeparator(const char *DateString)
+{
+  event = NULL;
+  char *buffer = NULL;
+  asprintf(&buffer, ">>> %s: %.*s", tr("New Day"), 10, DateString);
+  SetText(buffer, false);
+  SetSelectable(false);
+}
+
 // --- cMenuSchedule ---------------------------------------------------------
 
 class cMenuSchedule : public cOsdMenu {
@@ -1126,9 +1143,14 @@
      if (Schedule) {
         const cEvent *PresentEvent = Schedule->GetPresentEvent(Channel->Number() == cDevice::CurrentChannel());
         time_t now = time(NULL) - Setup.EPGLinger * 60;
+		char curDate[10] = "";
         for (const cEvent *Event = Schedule->Events()->First(); Event; Event = Schedule->Events()->Next(Event)) {
-            if (Event->EndTime() > now || Event == PresentEvent)
+            if (Event->EndTime() > now || Event == PresentEvent) {
+			   if (strlen(curDate) > 0 && strncmp(Event->GetWeekdayString(), curDate, 10) != 0)
+                  Add(new cMenuScheduleSeparator(Event->GetDateString()));
                Add(new cMenuScheduleItem(Event), Event == PresentEvent);
+			   strncpy(curDate, Event->GetWeekdayString(), 10);
+               }
             }
         }
      }
