Index: programs/mythlcdserver/lcdprocclient.cpp
===================================================================
--- programs/mythlcdserver/lcdprocclient.cpp	(revision 19928)
+++ programs/mythlcdserver/lcdprocclient.cpp	(working copy)
@@ -426,7 +426,8 @@
         sendToServer("widget_add Time sep num");
         sendToServer("widget_add Time d2 num");
         sendToServer("widget_add Time d3 num");
-        dobigclock(1);
+        sendToServer("widget_add Time ampm string");
+        sendToServer("widget_add Time dot string");
     }
     else
     {
@@ -1779,59 +1780,78 @@
 
 void LCDProcClient::dobigclock (bool init)
 {
-    // kludge ahead: use illegal number to clear num display type
     QString aString;
+    QString time = QTime::currentTime().toString(timeformat); 
+    int toffset = 0;
 
-    QString time = QTime::currentTime().toString("hh:mm");
-    // each char is 3 wide, colon is 1
+    // kludge ahead: use illegal number (11) to clear num display type
+    
+    // kluge - Uses string length to determine time format for parsing
+    // 1:00     = 4 characters  =  24-hour format, 1 digit hour
+    // 12:00    = 5 characters  =  24-hour format, 2 digit hour
+    // 1:00 am  = 7 characters  =  12-hour format, 1 digit hour
+    // 12:00 am = 8 characters  =  12-hour format, 2 digit hour 
+    if ((time.length()==8) || (time.length()==5)) 
+       toffset = 1;
+
+    // if 12-hour clock, add AM/PM indicator to end of the 2nd line
+    if (time.length()>6)
+    {
+       aString = time.at(5+toffset);
+       aString += time.at(6+toffset);
+    }
+    else 
+    {
+       aString = "  ";
+    }
+    outputRightText("Time", aString, "ampm", 2);
+   
+    // Add Hour 10's Digit 
     aString = "widget_set Time d0 ";
-    aString += QString::number(lcdWidth/2 - 7) + " ";
-    if (init)
+    aString += QString::number(lcdWidth/2 - 6) + " ";	
+    if (toffset==0)
         aString += "11";
     else
-        aString += time.at(0);
+        aString += time.at(0); 
     sendToServer(aString);
 
+    // Add Hour 1's Digit
     aString = "widget_set Time d1 ";
-    aString += QString::number(lcdWidth/2 - 4) + " ";
-    if (init)
-        aString += "11";
-    else
-        aString += time.at(1);
+    aString += QString::number(lcdWidth/2 - 3) + " ";  
+    aString += time.at(0+toffset);
     sendToServer(aString);
 
+    // Add the Colon (made 'solid'- now flash a dot in the corner)
+    aString = "widget_set Time sep ";
+    aString += QString::number(lcdWidth/2);
+    aString += " 10";	    // 10 means: colon
+    sendToServer(aString);
+
+    // Add Minute 10's Digit
     aString = "widget_set Time d2 ";
-    aString += QString::number(lcdWidth/2 + 2) + " ";
-    if (init)
-        aString += "11";
-    else
-        aString += time.at(3);
+    aString += QString::number(lcdWidth/2 + 1) + " ";	
+    aString += time.at(2+toffset);
     sendToServer(aString);
 
+    // Add Minute 1's Digit
     aString = "widget_set Time d3 ";
-    aString += QString::number(lcdWidth/2 + 5) + " ";
-    if (init)
-        aString += "11";
-    else
-        aString += time.at(4);
+    aString += QString::number(lcdWidth/2 + 4) + " ";	
+    aString += time.at(3+toffset);
     sendToServer(aString);
 
-    aString = "widget_set Time sep ";
-    aString += QString::number(lcdWidth/2);
+    // Added a flashing dot in the bottom-right corner  (instead of the colon)
     if (timeFlash)
-    {   // 10 means: colon
-        aString += " 10";
+    {   
+        outputRightText("Time",".","dot",4);
         timeFlash = false;
     }
     else 
     {
-        aString += " 11";
+        outputRightText("Time"," ","dot",4);
         timeFlash = true;
     }
-    sendToServer(aString);
 }
 
-
 void LCDProcClient::outputTime()
 {
     if (lcd_bigclock)
