Index: themes/G.A.N.T./ui.xml
===================================================================
--- themes/G.A.N.T./ui.xml	(revision 8276)
+++ themes/G.A.N.T./ui.xml	(working copy)
@@ -1223,6 +1223,14 @@
       </textarea>
     </container>
 
+    <container name="clock">
+      <textarea name="clocktext" drawoder="0">
+        <area>630,8,170,35</area>
+        <font>title</font>
+        <value>h:mm AP</value>
+      </textarea>
+    </container>
+
     <container name="selector">
       <area>0,50,800,310</area>
       <listarea name="toptitles" draworder="2">
Index: themes/blue/ui.xml
===================================================================
--- themes/blue/ui.xml	(revision 8276)
+++ themes/blue/ui.xml	(working copy)
@@ -774,6 +774,14 @@
       </textarea>
     </container>
     
+    <container name="clock">
+      <textarea name="clocktext" drawoder="0">
+        <area>650,4,150,35</area>
+        <font>title</font>
+        <value>h:mm AP</value>
+      </textarea>
+    </container>
+
     <container name="cur_group">
       <context>0</context>  
       <area>20,10,280,35</area>
Index: programs/mythfrontend/playbackbox.cpp
===================================================================
--- programs/mythfrontend/playbackbox.cpp	(revision 8276)
+++ programs/mythfrontend/playbackbox.cpp	(working copy)
@@ -252,6 +252,7 @@
     generatePreviewPixmap = gContext->GetNumSetting("GeneratePreviewPixmaps");
     dateformat = gContext->GetSetting("DateFormat", "ddd MMMM d");
     timeformat = gContext->GetSetting("TimeFormat", "h:mm AP");
+    showClock = gContext->GetNumSetting("ShowClock", 1);
 
     nvp = NULL;
     timer = new QTimer(this);
@@ -265,6 +266,31 @@
     timer->start(500);
     gContext->addListener(this);
 
+    if (showClock)
+    {
+        LayerSet *container = theme->GetSet("clock");
+        if (container)
+        {
+            UITextType *text = (UITextType*) container->GetType("clocktext");
+            if (text)
+            {
+                clockRect = text->getScreenArea();
+                clockformat = text->GetDefaultText();
+                clockTimer = new QTimer(this);
+                connect(clockTimer, SIGNAL(timeout()), this, SLOT(updateClock()));
+                clockTimer->start(100);
+            }
+            else
+            {
+                showClock = FALSE;
+            }
+        }
+        else
+        {
+            showClock = FALSE;
+        }
+    }
+
     freeSpaceTimer = new QTimer(this);
     connect(freeSpaceTimer, SIGNAL(timeout()), this, 
             SLOT(setUpdateFreeSpace()));
@@ -489,6 +515,47 @@
     setPaletteBackgroundPixmap(myBackground);
 }
   
+void PlaybackBox::updateClock(void)
+{
+    LayerSet *container = theme->GetSet("clock");
+    if (container)
+    {
+        UITextType *text = (UITextType*) container->GetType("clocktext");	
+        if (text)
+        {
+            QPainter tmp(this);
+            QPixmap pix(clockRect.size());
+            pix.fill(this, clockRect.topLeft());
+            tmp.drawPixmap(clockRect.topLeft(), pix);
+
+            QDateTime now = QDateTime::currentDateTime();
+
+            if (clockformat.contains('s'))
+            {
+                clockTimer->start(1000);
+            }
+            else
+            {
+                QTime nextMin(now.time().hour(), now.time().minute()+1);
+                clockTimer->start(now.time().msecsTo(nextMin) + 500);
+            }
+
+            QString timeStr = now.toString(clockformat);
+            text->SetText(timeStr);
+
+            if(type != Delete)
+            {
+                text->Draw(&tmp, 0, 0);
+            }
+            else
+            {
+                text->Draw(&tmp, 0, 1);
+            }
+            tmp.end();
+        }
+    }
+}
+
 void PlaybackBox::paintEvent(QPaintEvent *e)
 {
     if (e->erased())
@@ -522,6 +589,11 @@
         updateVideo(&p);
     }
 
+    if (showClock && r.intersects(clockRect))
+    {
+        clockTimer->start(100);
+    }
+
     skipCnt--;
     if (skipCnt < 0)
     {
@@ -1903,6 +1975,9 @@
     state = kKilling; // stop preview playback and don't restart it
     playingSomething = true;
 
+    if (showClock)
+        clockTimer->stop();
+
     tv->setLastProgram(lastProgram);
 
     if (tv->Playback(tvrec))
@@ -1944,6 +2019,9 @@
 
     lastProgram = new ProgramInfo(*tvrec);
 
+    if (showClock)
+        clockTimer->start(100);
+
     playingSomething = false;
     state = kStarting; // restart playback preview
     setEnabled(true);
Index: programs/mythfrontend/playbackbox.h
===================================================================
--- programs/mythfrontend/playbackbox.h	(revision 8276)
+++ programs/mythfrontend/playbackbox.h	(working copy)
@@ -43,6 +43,7 @@
   
   protected slots:
     void timeout(void);
+    void updateClock(void);
 
     void cursorLeft();
     void cursorRight();
@@ -259,6 +260,10 @@
     QString dateformat;
     QString timeformat;
 
+    bool showClock;
+    QTimer *clockTimer;
+    QString clockformat;
+
     void grayOut(QPainter *);
     void updateBackground(void);
     void updateVideo(QPainter *);
@@ -287,6 +292,7 @@
     QRect usageRect;
     QRect videoRect;
     QRect curGroupRect;
+    QRect clockRect;
 
     QTimer *fillListTimer;
     int listsize;
