diff --git a/patches/october_2013/p06_update_control_panel_and_global_defaults.py b/patches/october_2013/p06_update_control_panel_and_global_defaults.py
index dd5a1c1..7f40fb4 100644
--- a/patches/october_2013/p06_update_control_panel_and_global_defaults.py
+++ b/patches/october_2013/p06_update_control_panel_and_global_defaults.py
@@ -8,15 +8,11 @@
 	webnotes.reload_doc("setup", "doctype", "global_defaults")
 
 	country = webnotes.conn.sql("""select value from `tabSingles` where 
-		field ='country' and doctype='Control Panel'""")
+		field='country' and doctype='Control Panel'""")
 	time_zone = webnotes.conn.sql("""select value from `tabSingles` where 
-		field ='timezone' and doctype='Control Panel'""")
-
-	cp_bean = webnotes.bean("Control Panel")
-	cp_bean.time_zone = time_zone
-	cp_bean.save()
+		field='timezone' and doctype='Control Panel'""")
 
 	gb_bean = webnotes.bean("Global Defaults")
-	gb_bean.country = country
-	gb_bean.time_zone = time_zone
+	gb_bean.doc.country = country and country[0][0] or None
+	gb_bean.doc.time_zone = time_zone and time_zone[0][0] or None
 	gb_bean.save()
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 565ff99..37220ab 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -227,4 +227,5 @@
 	"patches.october_2013.p03_remove_sales_and_purchase_return_tool",
 	"patches.october_2013.p04_update_report_permission",
 	"patches.october_2013.p05_delete_gl_entries_for_cancelled_vouchers",
+	"patches.october_2013.p06_update_control_panel_and_global_defaults",
 ]
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/global_defaults.js b/setup/doctype/global_defaults/global_defaults.js
index a4bdb48..15350b7 100644
--- a/setup/doctype/global_defaults/global_defaults.js
+++ b/setup/doctype/global_defaults/global_defaults.js
@@ -2,24 +2,27 @@
 // License: GNU General Public License v3. See license.txt
 
 $.extend(cur_frm.cscript, {
-	validate: function(doc, cdt, cdn) {
-		return $c_obj(make_doclist(cdt, cdn), 'get_defaults', '', function(r, rt){
-			sys_defaults = r.message;
-		});
-	},
-
-	refresh: function() {
+	onload: function(doc) {
 		var me = this;
+		this.time_zone = doc.time_zone;
+		
 		wn.call({
 			method:"webnotes.country_info.get_country_timezone_info",
 			callback: function(data) {
 				erpnext.country_info = data.message.country_info;
 				erpnext.all_timezones = data.message.all_timezones;
-				// me.set_timezone_options();
+				me.set_timezone_options();
+				cur_frm.set_value("time_zone", me.time_zone);
 			}
 		});
 	},
 
+	validate: function(doc, cdt, cdn) {
+		return $c_obj(make_doclist(cdt, cdn), 'get_defaults', '', function(r, rt){
+			sys_defaults = r.message;
+		});
+	},
+
 	country: function() {
 		var me = this;
 		var timezones = [];
@@ -36,9 +39,8 @@
 		if(!filtered_options) filtered_options = [];
 		var remaining_timezones = $.map(erpnext.all_timezones, function(v) 
 			{ return filtered_options.indexOf(v)===-1 ? v : null; });
-
-		this.frm.fields_dict.time_zone.df.options = 
-			(filtered_options.concat([""]).concat(remaining_timezones)).join("\n");
-		refresh_field("time_zone");
+		
+		this.frm.set_df_property("time_zone", "options", 
+			(filtered_options.concat([""]).concat(remaining_timezones)).join("\n"));
 	}
 });
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py
index 4a3791b..3e06ff9 100644
--- a/setup/doctype/global_defaults/global_defaults.py
+++ b/setup/doctype/global_defaults/global_defaults.py
@@ -61,9 +61,11 @@
 
 	def update_control_panel(self):
 		cp_bean = webnotes.bean("Control Panel")
-		cp_bean.country = self.doc.country
-		cp_bean.time_zone = self.doc.time_zone
+		if self.doc.country:
+			cp_bean.doc.country = self.doc.country
+		if self.doc.time_zone:
+			cp_bean.doc.time_zone = self.doc.time_zone
 		cp_bean.save()
-		
+
 	def get_defaults(self):
 		return webnotes.defaults.get_defaults()
