--- zhone-0-git20080809.orig/src/zhone
+++ zhone-0-git20080809/src/zhone
@@ -867,6 +867,7 @@
 
         self.accuracy = None
         self.position = None
+        self.time = None
         self.update()
 
         #self.signalgraph.update( [(1, 20.5), (2, 34.3), (5, 25.9), (10, 0.5)] )
@@ -882,6 +883,10 @@
             text.append( "P/H/V-DOP:<tab>%s/%s/%s" % self.accuracy )
         else:
             text.append( "P/H/V-DOP:<tab>N/A")
+        if self.time:
+            text.append( "Time: %s" % self.time )
+        else:
+            text.append( "Time: N/A" )
         if self.page == "left":
             self.part_text_set( "status", u"<br>".join( text ) )
             if self.part_swallow_get( "swallow" ):
@@ -910,6 +915,10 @@
         self.position = ( lat, lon, alt )
         self.update()
 
+    def onTimeChanged( self, time ):
+        self.time = time
+        self.update()
+
     def onSatellitesChanged( self, satellites ):
         #signallist = [ (int(sat[0]), float(sat[4])) for sat in satellites ]
         #self.signalgraph.update( signallist )
@@ -1527,6 +1536,7 @@
         dbus_object.onNetworkStatus.append( self.update_network )
         dbus_object.onAccuracyChanged.append( self.groups["location"].onAccuracyChanged )
         dbus_object.onPositionChanged.append( self.groups["location"].onPositionChanged )
+        dbus_object.onTimeChanged.append( self.groups["location"].onTimeChanged )
         dbus_object.onSatellitesChanged.append( self.groups["location"].onSatellitesChanged )
         dbus_object.onCallStatus.append( self.groups["call"].onCallStatus )
         dbus_object.onReadyStatus.append( self.groups["contacts"].onReadyStatus )
@@ -1738,6 +1748,7 @@
         self.onResourceChanged = []
         self.onAccuracyChanged = []
         self.onPositionChanged = []
+        self.onTimeChanged = []
         self.onSatellitesChanged = []
         self.onCallStatus = []
         self.onReadyStatus = []
@@ -1753,6 +1764,7 @@
         self.gps_obj = None
         self.gps_accuracy_iface = None
         self.gps_position_iface = None
+        self.gps_time_iface = None
         self.gps_satellite_iface = None
 
         self.gsm_device_obj = None
@@ -1820,14 +1832,17 @@
         if self.gps_obj and not self.gps_position_iface:
             self.gps_position_iface = Interface(self.gps_obj, 'org.freedesktop.Gypsy.Position')
             self.gps_position_iface.connect_to_signal( "PositionChanged", self.cbPositionChanged )
+        if self.gps_obj and not self.gps_time_iface:
+            self.gps_time_iface = Interface(self.gps_obj, 'org.freedesktop.Gypsy.Time')
+            self.gps_time_iface.connect_to_signal( "TimeChanged", self.cbTimeChanged )
         if self.gps_obj and not self.gps_satellite_iface:
             self.gps_satellite_iface = Interface(self.gps_obj, 'org.freedesktop.Gypsy.Satellite')
             self.gps_satellite_iface.connect_to_signal( "SatellitesChanged", self.cbSatellitesChanged )
         if not self.gps_obj or not self.gps_accuracy_iface or not self.gps_position_iface \
-            or not self.gps_satellite_iface:
+            or not self.gps_time_iface or not self.gps_satellite_iface:
             failcount += 1
         else:
-            logger.debug( "gps ok: %s, %s, %s" % ( self.gps_accuracy_iface, self.gps_position_iface, self.gps_satellite_iface ) )
+            logger.debug( "gps ok: %s, %s, %s, %s" % ( self.gps_accuracy_iface, self.gps_position_iface, self.gps_satellite_iface, self.gps_time_iface ) )
 
         # Phone
         self.gsm_device_obj = self.tryGetProxy( 'org.freesmartphone.ogsmd', '/org/freesmartphone/GSM/Device' )
@@ -1890,6 +1905,10 @@
         for cb in self.onPositionChanged:
             cb( fields=fields, timestamp=timestamp, lat=lat, lon=lon, alt=alt )
 
+    def cbTimeChanged( self, time ):
+        for cb in self.onTimeChanged:
+            cb( fields=fields, time=time )
+
     def cbSatellitesChanged( self, satellites ):
         for cb in self.onSatellitesChanged:
             cb( satellites )
