--- a/files/usr/lib/cinnamon-settings/cinnamon-settings.py	2012-03-12 14:31:34.000000000 +0000
+++ b/files/usr/lib/cinnamon-settings/cinnamon-settings.py	2012-03-13 10:58:01.866049626 +0000
@@ -11,9 +11,6 @@ try:
     import gconf
     import json
     import dbus
-    import tz
-    import time
-    from datetime import datetime
     from user import home
     import thread
 except Exception, detail:
@@ -737,244 +734,7 @@ class GSettingsComboBox(Gtk.HBox):
             value = self.model[tree_iter][0]            
             self.settings.set_string(self.key, value)                       
 
-class TimeZoneSelectorWidget(Gtk.HBox):
-    def __init__(self):
-        super(TimeZoneSelectorWidget, self).__init__()
-        
-        proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/")
-        self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism")
-        
-        self.timezones = tz.load_db()
-        
-        self.selected_region, self.selected_city = self.get_selected_zone()
-        
-        region_label = Gtk.Label(_("Region"))
-        self.pack_start(region_label, False, False, 2)
-        
-        regions = self.timezones.keys()
-        regions.sort()
-        self.region_model = Gtk.ListStore(str, str)
-        selected_region_iter = None
-        for region in regions:
-            iter = self.region_model.insert_before(None, None)
-            self.region_model.set_value(iter, 0, region)                
-            self.region_model.set_value(iter, 1, region.replace("_", " "))                        
-            if (region == self.selected_region):
-                selected_region_iter = iter
-                                
-        self.region_widget = Gtk.ComboBox.new_with_model(self.region_model)   
-        renderer_text = Gtk.CellRendererText()
-        self.region_widget.pack_start(renderer_text, True)
-        self.region_widget.add_attribute(renderer_text, "text", 1)
-        if selected_region_iter is not None:
-            self.region_widget.set_active_iter(selected_region_iter)
-        self.pack_start(self.region_widget, False, False, 2)
-        
-        city_label = Gtk.Label(_("City"))
-        self.pack_start(city_label, False, False, 2)
-        
-        self.city_model = Gtk.ListStore(str, str)
-        self.city_widget = Gtk.ComboBox.new_with_model(self.city_model)   
-        renderer_text = Gtk.CellRendererText()
-        self.city_widget.pack_start(renderer_text, True)
-        self.city_widget.add_attribute(renderer_text, "text", 1)
-        self.pack_start(self.city_widget, False, False, 2)
-        
-        self.update_cities_list()
-        
-        self.region_widget.connect("changed", self.on_region_changed)
-        self.city_widget.connect("changed", self.on_city_changed)
-    def on_city_changed(self, widget):
-        tree_iter = widget.get_active_iter()
-        if tree_iter != None:
-            self.selected_city = self.city_model[tree_iter][0]
-            self.dbus_iface.SetTimezone(self.selected_region+"/"+self.selected_city)
-    def on_region_changed(self, widget):
-        tree_iter = widget.get_active_iter()
-        if tree_iter != None:            
-            self.selected_region = self.region_model[tree_iter][0]
-            self.update_cities_list()
-    def update_cities_list(self):
-        self.city_model.clear()
-        if self.selected_region and self.selected_region in self.timezones.keys():
-            cities = self.timezones[self.selected_region]
-            cities.sort()
-            selected_city_iter = None
-            for city in cities:
-                iter = self.city_model.insert_before(None, None)
-                self.city_model.set_value(iter, 0, city)                
-                self.city_model.set_value(iter, 1, city.replace("_", " "))                        
-                if (city == self.selected_city):
-                    selected_city_iter = iter
-            if selected_city_iter is not None:
-                self.city_widget.set_active_iter(selected_city_iter)
-    def get_selected_zone(self):
-        tz = self.dbus_iface.GetTimezone()
-        if "/" in tz:
-            i = tz.index("/")
-            region = tz[:i]
-            city = tz[i+1:]
-            return region, city
-        else:
-            return "", ""
-            
-class ChangeTimeWidget(Gtk.HBox):
-    def __init__(self):
-        super(ChangeTimeWidget, self).__init__()
-        proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/")
-        self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism")
-        
-        # Ensures we are setting the system time only when the user changes it
-        self.changedOnTimeout = False
-        
-        # Ensures we do not update the values in the date/time fields during the DBus call to set the time
-        self._setting_time = False
-        self._setting_time_lock = thread.allocate()
-        self._time_to_set = None
-        
-        self.thirtyDays = [3, 5, 8, 10]
-        months = ['January','February','March','April','May','June','July','August','September','October','November','December']
-        
-        # Boxes
-        timeBox = Gtk.HBox()
-        dateBox = Gtk.HBox()
-        
-        # Combo Boxes
-        self.monthBox = Gtk.ComboBoxText()
-        
-        for month in months:
-            self.monthBox.append_text(month)
-        
-        # Adjustments
-        hourAdj = Gtk.Adjustment(0, 0, 23, 1, 1)
-        minAdj = Gtk.Adjustment(0, 0, 59, 1, 1)
-        yearAdj = Gtk.Adjustment(0, 0, 9999, 1, 5)
-        dayAdj = Gtk.Adjustment(0, 1, 31, 1, 1)
-        
-        # Spin buttons
-        self.hourSpin = Gtk.SpinButton()
-        self.minSpin = Gtk.SpinButton()
-        self.yearSpin = Gtk.SpinButton()
-        self.daySpin = Gtk.SpinButton()
-        
-        self.hourSpin.configure(hourAdj, 0.5, 0)
-        self.minSpin.configure(minAdj, 0.5, 0)
-        self.yearSpin.configure(yearAdj, 0.5, 0)
-        self.daySpin.configure(dayAdj, 0.5, 0)
-        self.hourSpin.set_editable(False)
-        self.minSpin.set_editable(False)
-        self.yearSpin.set_editable(False)
-        self.daySpin.set_editable(False)
-        
-        self.update_time()
-        GObject.timeout_add(1000, self.update_time)
-        
-        # Connect to callback
-        self.hourSpin.connect('changed', self._change_system_time)
-        self.minSpin.connect('changed', self._change_system_time)
-        self.monthBox.connect('changed', self._change_system_time)
-        self.yearSpin.connect('changed', self._change_system_time)
-        self.daySpin.connect('changed', self._change_system_time)
-        
-        timeBox.pack_start(self.hourSpin, False, False, 2)
-        timeBox.pack_start(Gtk.Label(_(":")), False, False, 2)
-        timeBox.pack_start(self.minSpin, False, False, 2)
-        
-        dateBox.pack_start(self.monthBox, False, False, 2)
-        dateBox.pack_start(self.daySpin, False, False, 2)
-        dateBox.pack_start(self.yearSpin, False, False, 2)
-        
-        self.pack_start(Gtk.Label(_("Date : ")), False, False, 2)
-        self.pack_start(dateBox, True, True, 2)
-        self.pack_start(Gtk.Label(_("Time : ")), False, False, 2)
-        self.pack_start(timeBox, True, True, 2)
-        
-    def update_time(self):
-        self._setting_time_lock.acquire()
-        do_update = not self._setting_time
-        self._setting_time_lock.release()
-        
-        if not do_update:
-            return True
-        
-        dt = datetime.now()
-        
-        self.changedOnTimeout = True
-        
-        # Time
-        self.hourSpin.set_value( dt.hour )
-        self.minSpin.set_value( dt.minute )
-        
-        # Date
-        self.monthBox.set_active( dt.month-1 )
-        self.daySpin.set_value( dt.day )
-        self.yearSpin.set_value( dt.year )
-        
-        self.changedOnTimeout = False
-        
-        # Update the max of the day spin box
-        maxDay = 31
-        if dt.month == 2:
-            if dt.year % 4 == 0:
-                maxDay = 29
-            else:
-                maxDay = 28
-        elif dt.month-1 in self.thirtyDays:
-            maxDay = 30
-            
-        self.daySpin.get_adjustment().set_upper(maxDay)
-        
-        return True
-        
-    def change_using_ntp(self, usingNtp):
-        # Check if we were using Ntp by seeing if the spin button
-        # is sensitive
-        self.set_sensitive(not usingNtp)
-    
-    def _do_change_system_time(self):
-        self._setting_time_lock.acquire()
-        do_set = not self._setting_time
-        self._setting_time = True
-        self._setting_time_lock.release()
-        
-        # If there is already another thread updating the time, we let it do the job
-        if not do_set:
-            return
-        
-        done = False
-        while not done:
-            self._setting_time_lock.acquire()
-            time_to_set = self._time_to_set
-            self._time_to_set = None
-            self._setting_time_lock.release()
-            
-            self.dbus_iface.SetTime(time_to_set)
-            
-            # Check whether another request to set the time was done since this thread started
-            self._setting_time_lock.acquire()
-            if self._time_to_set==None:
-                done = True
-            self._setting_time_lock.release()
-        
-        self._setting_time_lock.acquire()
-        self._setting_time = False
-        self._setting_time_lock.release()
-                
-    def _change_system_time(self, widget):
-        if not self.changedOnTimeout:
-            hour = int( self.hourSpin.get_value() )
-            minute = int( self.minSpin.get_value() )
-            month = self.monthBox.get_active() + 1
-            day = int( self.daySpin.get_value() )
-            year = int( self.yearSpin.get_value() )
-            
-            newDt = datetime(year, month, day, hour, minute)
-            
-            self._setting_time_lock.acquire()
-            self._time_to_set = time.mktime(newDt.utctimetuple())
-            self._setting_time_lock.release()
-            
-            thread.start_new_thread(self._do_change_system_time, ())
+
 
 class TitleBarButtonsOrderSelector(Gtk.Table):
     def __init__(self):
@@ -1120,27 +880,12 @@ class MainWindow:
         sidePage.add_widget(GSettingsCheckButton(_("Panel Launchers draggable"), "org.cinnamon", "panel-launchers-draggable"))       
         
         sidePage = SidePage(_("Calendar"), "clock.svg", self.content_box)
-        self.sidePages.append((sidePage, "calendar"))
-        self.changeTimeWidget = ChangeTimeWidget()     
+        self.sidePages.append((sidePage, "calendar"))     
         sidePage.add_widget(GSettingsCheckButton(_("Show week dates in calendar"), "org.cinnamon.calendar", "show-weekdate"))         
         sidePage.add_widget(GSettingsEntry(_("Date format for the panel"), "org.cinnamon.calendar", "date-format"))                                 
         sidePage.add_widget(GSettingsEntry(_("Date format inside the date applet"), "org.cinnamon.calendar", "date-format-full"))                                 
         sidePage.add_widget(Gtk.LinkButton.new_with_label("http://www.foragoodstrftime.com/", _("Generate your own date formats")))
-        self.ntpCheckButton = None 
-        try:
-            self.ntpCheckButton = DBusCheckButton(_("Use network time"), "org.gnome.SettingsDaemon.DateTimeMechanism", "/", "GetUsingNtp", "SetUsingNtp")
-            sidePage.add_widget(self.ntpCheckButton)
-        except:
-            pass
-        sidePage.add_widget(self.changeTimeWidget)
-        try:
-            sidePage.add_widget(TimeZoneSelectorWidget())
-        except:
-            pass
-        
-        if self.ntpCheckButton != None:
-            self.ntpCheckButton.connect('toggled', self._ntp_toggled)
-            self.changeTimeWidget.change_using_ntp( self.ntpCheckButton.get_active() )
+
         
         sidePage = SidePage(_("Hot corner"), "overview.svg", self.content_box)
         self.sidePages.append((sidePage, "hotcorner"))
@@ -1314,7 +1059,6 @@ class MainWindow:
         sidePage.add_widget(GSettingsFontButton(_("Default font"), "org.gnome.desktop.interface", "font-name"))
         sidePage.add_widget(GSettingsFontButton(_("Document font"), "org.gnome.desktop.interface", "document-font-name"))
         sidePage.add_widget(GSettingsFontButton(_("Monospace font"), "org.gnome.desktop.interface", "monospace-font-name"))
-        sidePage.add_widget(GConfFontButton(_("Window title font"), "/apps/metacity/general/titlebar_font"))
         sidePage.add_widget(GSettingsComboBox(_("Hinting"), "org.gnome.settings-daemon.plugins.xsettings", "hinting", [(i, i.title()) for i in ("none", "slight", "medium", "full")]))
         sidePage.add_widget(GSettingsComboBox(_("Antialiasing"), "org.gnome.settings-daemon.plugins.xsettings", "antialiasing", [(i, i.title()) for i in ("none", "grayscale", "rgba")]))
                         
@@ -1355,9 +1099,6 @@ class MainWindow:
         self.content_box_sw.hide()
         self.top_button_box.hide()
         self.side_view_sw.show_all()
-        
-    def _ntp_toggled(self, widget):
-        self.changeTimeWidget.change_using_ntp( self.ntpCheckButton.get_active() )
                 
                 
 if __name__ == "__main__":
--- a/files/usr/lib/cinnamon-settings/tz.py	2012-03-12 14:31:34.000000000 +0000
+++ /dev/null	2012-03-13 10:08:58.957000026 +0000
@@ -1,35 +0,0 @@
-import os
-
-def load_db():
-    tz_db = {}
-    
-    filename = '/usr/share/zoneinfo/zone.tab'
-    if not os.path.exists(filename):
-        filename = '/usr/share/lib/zoneinfo/tab/zone_sun.tab'
-    if not os.path.exists(filename):
-        return {}
-        
-    tz_file = open(filename)
-    
-    for line in tz_file:
-        line = line.rstrip().lstrip()
-        if line=="" or line[0] == '#':
-            continue
-        
-        tz_info = line.split('\t')
-        if len(tz_info)<3:
-            continue
-        tz = tz_info[2]
-        if "/" in tz:
-            i = tz.index("/")
-            region = tz[:i]
-            zone = tz[i+1:]
-        
-            if region not in tz_db:
-                tz_db[region] = []
-            
-            tz_db[region].append(zone)
-        
-    tz_file.close()
-    
-    return tz_db
--- a/files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js	2012-03-12 14:31:34.000000000 +0000
+++ b/files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js	2012-03-13 10:56:47.918048379 +0000
@@ -62,9 +62,7 @@ MyApplet.prototype = {
             this._calendar = new Calendar.Calendar(this._eventSource);       
             vbox.add(this._calendar.actor);
 
-            let item = new PopupMenu.PopupMenuItem(_("Date and Time Settings"))
-            item.connect("activate", Lang.bind(this, this._onLaunchSettings));
-            //this.menu.addMenuItem(item);
+            item = this.menu.addSettingsAction(_("Date and Time Settings"), 'gnome-datetime-panel.desktop');
             if (item) {
                 let separator = new PopupMenu.PopupSeparatorMenuItem();
                 separator.setColumnWidths(1);
@@ -96,11 +94,6 @@ MyApplet.prototype = {
     on_applet_clicked: function(event) {
         this.menu.toggle();
     },
-    
-    _onLaunchSettings: function() {
-        this.menu.close();
-        Util.spawnCommandLine("cinnamon-settings calendar");
-    },
 
     _updateClockAndDate: function() {
         let dateFormat = this._calendarSettings.get_string('date-format');       
