diff --git a/accounts/doctype/gl_entry/gl_entry.py b/accounts/doctype/gl_entry/gl_entry.py
index 3a0b28c..d3c6317 100644
--- a/accounts/doctype/gl_entry/gl_entry.py
+++ b/accounts/doctype/gl_entry/gl_entry.py
@@ -5,8 +5,7 @@
 import webnotes
 
 from webnotes.utils import flt, fmt_money, getdate
-from webnotes.model.code import get_obj
-from webnotes import msgprint, _
+from webnotes import _
 	
 class DocType:
 	def __init__(self,d,dl):
@@ -130,11 +129,12 @@
 		against_voucher_amount = flt(webnotes.conn.sql("""
 			select sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))
 			from `tabGL Entry` where voucher_type = 'Journal Voucher' and voucher_no = %s
-			and account = %s""", (against_voucher, account))[0][0])
+			and account = %s and ifnull(against_voucher, '') = ''""", 
+			(against_voucher, account))[0][0])
 		bal = against_voucher_amount + bal
 		if against_voucher_amount < 0:
 			bal = -bal
-		
+	
 	# Validation : Outstanding can not be negative
 	if bal < 0 and not on_cancel:
 		webnotes.throw(_("Outstanding for Voucher ") + against_voucher + _(" will become ") + 
@@ -158,4 +158,4 @@
 		elif frozen_accounts_modifier not in webnotes.user.get_roles():
 			webnotes.throw(account + _(" is a frozen account. ") + 
 				_("To create / edit transactions against this account, you need role") + ": " +  
-				frozen_accounts_modifier)
+				frozen_accounts_modifier)
\ No newline at end of file
diff --git a/accounts/report/accounts_receivable/accounts_receivable.py b/accounts/report/accounts_receivable/accounts_receivable.py
index ad0d925..945bae4 100644
--- a/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/accounts/report/accounts_receivable/accounts_receivable.py
@@ -85,7 +85,7 @@
 	def get_account_map(self):
 		if not hasattr(self, "account_map"):
 			self.account_map = dict(((r.name, r) for r in webnotes.conn.sql("""select 
-				account.name, customer.customer_name, customer.territory
+				account.name, customer.name as customer_name, customer.territory
 				from `tabAccount` account, `tabCustomer` customer 
 				where account.master_type="Customer" 
 				and customer.name=account.master_name""", as_dict=True)))
diff --git a/accounts/report/budget_variance_report/budget_variance_report.py b/accounts/report/budget_variance_report/budget_variance_report.py
index 2cbbd62..a5860c8 100644
--- a/accounts/report/budget_variance_report/budget_variance_report.py
+++ b/accounts/report/budget_variance_report/budget_variance_report.py
@@ -121,6 +121,6 @@
 			
 			for ad in actual_details.get(ccd.name, {}).get(ccd.account, []):
 				if ad.month_name == month:
-						tav_dict.actual += ad.debit - ad.credit
+						tav_dict.actual += flt(ad.debit) - flt(ad.credit)
 						
-	return cam_map
\ No newline at end of file
+	return cam_map
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index b2873c5..2435d0c 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -27,6 +27,14 @@
 		else:
 			self.doc.name = make_autoname(self.doc.naming_series + '.#####')
 
+	def update_address(self):
+		webnotes.conn.sql("""update `tabAddress` set supplier_name=%s, modified=NOW() 
+			where supplier=%s""", (self.doc.supplier_name, self.doc.name))
+
+	def update_contact(self):
+		webnotes.conn.sql("""update `tabContact` set supplier_name=%s, modified=NOW() 
+			where supplier=%s""", (self.doc.supplier_name, self.doc.name))
+
 	def update_credit_days_limit(self):
 		webnotes.conn.sql("""update tabAccount set credit_days = %s where name = %s""", 
 			(cint(self.doc.credit_days), self.doc.name + " - " + self.get_company_abbr()))
@@ -35,6 +43,9 @@
 		if not self.doc.naming_series:
 			self.doc.naming_series = ''
 
+		self.update_address()
+		self.update_contact()
+
 		# create account head
 		self.create_account_head()
 
@@ -151,10 +162,19 @@
 	def before_rename(self, olddn, newdn, merge=False):
 		from accounts.utils import rename_account_for
 		rename_account_for("Supplier", olddn, newdn, merge)
-		
+
 	def after_rename(self, olddn, newdn, merge=False):
+		set_field = ''
 		if webnotes.defaults.get_global_default('supp_master_name') == 'Supplier Name':
 			webnotes.conn.set(self.doc, "supplier_name", newdn)
+			self.update_contact()
+			set_field = ", supplier_name=%(newdn)s"
+		self.update_supplier_address(newdn, set_field)
+
+	def update_supplier_address(self, newdn, set_field):
+		webnotes.conn.sql("""update `tabAddress` set address_title=%(newdn)s 
+			{set_field} where supplier=%(newdn)s"""\
+			.format(set_field=set_field), ({"newdn": newdn}))
 
 @webnotes.whitelist()
 def get_dashboard_info(supplier):
diff --git a/config.json b/config.json
index 05918ef..779f063 100644
--- a/config.json
+++ b/config.json
@@ -1,78 +1,78 @@
 {
-	"app_name": "ERPNext",
-	"app_version": "3.0.0",
-	"requires_framework_version": "==3.0.0",
-	"base_template": "app/portal/templates/base.html",
-	"modules": {
-		"Selling": {
-			"link": "selling-home",
-			"color": "#1abc9c",
-			"icon": "icon-tag",
-			"type": "module"
-		},
-		"Accounts": {
-			"link": "accounts-home",
-			"color": "#3498db",
-			"icon": "icon-money",
-			"type": "module"
-		},
-		"Stock": {
-			"type": "module",
-			"link": "stock-home",
-			"color": "#f39c12",
-			"icon": "icon-truck"
-		},
-		"Buying": {
-			"type": "module",
-			"link": "buying-home",
-			"color": "#c0392b",
-			"icon": "icon-shopping-cart"
-		},
-		"Support": {
-			"type": "module",
-			"link": "support-home",
-			"color": "#2c3e50",
-			"icon": "icon-phone"
-		},
-		"Projects": {
-			"type": "module",
-			"link": "projects-home",
-			"color": "#8e44ad",
-			"icon": "icon-puzzle-piece"
-		},
-		"Manufacturing": {
-			"type": "module",
-			"link": "manufacturing-home",
-			"color": "#7f8c8d",
-			"icon": "icon-cogs"
-		},
-		"HR": {
-			"type": "module",
-			"link": "hr-home",
-			"color": "#2ecc71",
-			"label": "Human Resources",
-			"icon": "icon-group"
-		},
-		"Setup": {
-			"type": "setup",
-			"link": "Setup",
-			"color": "#bdc3c7",
-			"icon": "icon-wrench"
-		},
-		"Activity": {
-			"type": "page",
-			"link": "activity",
-			"color": "#e67e22",
-			"icon": "icon-play",
-			"label": "Activity"
-		},
-		"Notes": {
-			"type": "list",
-			"doctype": "Note",
-			"link": "List/Note",
-			"color": "#95a5a6",
-			"label": "Notes",
-			"icon": "icon-file-alt"
-		}
-	}
-}
+ "app_name": "ERPNext", 
+ "app_version": "3.2.0", 
+ "base_template": "app/portal/templates/base.html", 
+ "modules": {
+  "Accounts": {
+   "color": "#3498db", 
+   "icon": "icon-money", 
+   "link": "accounts-home", 
+   "type": "module"
+  }, 
+  "Activity": {
+   "color": "#e67e22", 
+   "icon": "icon-play", 
+   "label": "Activity", 
+   "link": "activity", 
+   "type": "page"
+  }, 
+  "Buying": {
+   "color": "#c0392b", 
+   "icon": "icon-shopping-cart", 
+   "link": "buying-home", 
+   "type": "module"
+  }, 
+  "HR": {
+   "color": "#2ecc71", 
+   "icon": "icon-group", 
+   "label": "Human Resources", 
+   "link": "hr-home", 
+   "type": "module"
+  }, 
+  "Manufacturing": {
+   "color": "#7f8c8d", 
+   "icon": "icon-cogs", 
+   "link": "manufacturing-home", 
+   "type": "module"
+  }, 
+  "Notes": {
+   "color": "#95a5a6", 
+   "doctype": "Note", 
+   "icon": "icon-file-alt", 
+   "label": "Notes", 
+   "link": "List/Note", 
+   "type": "list"
+  }, 
+  "Projects": {
+   "color": "#8e44ad", 
+   "icon": "icon-puzzle-piece", 
+   "link": "projects-home", 
+   "type": "module"
+  }, 
+  "Selling": {
+   "color": "#1abc9c", 
+   "icon": "icon-tag", 
+   "link": "selling-home", 
+   "type": "module"
+  }, 
+  "Setup": {
+   "color": "#bdc3c7", 
+   "icon": "icon-wrench", 
+   "link": "Setup", 
+   "type": "setup"
+  }, 
+  "Stock": {
+   "color": "#f39c12", 
+   "icon": "icon-truck", 
+   "link": "stock-home", 
+   "type": "module"
+  }, 
+  "Support": {
+   "color": "#2c3e50", 
+   "icon": "icon-phone", 
+   "link": "support-home", 
+   "type": "module"
+  }
+ }, 
+ "requires_framework_version": "==3.2.0"
+}
\ No newline at end of file
diff --git a/hr/doctype/earning_type/earning_type.txt b/hr/doctype/earning_type/earning_type.txt
index 0c84cf1..902a4ed 100644
--- a/hr/doctype/earning_type/earning_type.txt
+++ b/hr/doctype/earning_type/earning_type.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-24 11:03:32", 
   "docstatus": 0, 
-  "modified": "2013-07-22 15:25:26", 
+  "modified": "2013-12-09 16:24:07", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -85,7 +85,7 @@
   "doctype": "DocField", 
   "fieldname": "exemption_limit", 
   "fieldtype": "Float", 
-  "hidden": 1, 
+  "hidden": 0, 
   "label": "Exemption Limit", 
   "oldfieldname": "exemption_limit", 
   "oldfieldtype": "Currency"
diff --git a/manufacturing/doctype/bom/bom.txt b/manufacturing/doctype/bom/bom.txt
index 68553fb..a5ff125 100644
--- a/manufacturing/doctype/bom/bom.txt
+++ b/manufacturing/doctype/bom/bom.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-22 15:11:38", 
   "docstatus": 0, 
-  "modified": "2013-12-04 11:51:36", 
+  "modified": "2013-12-09 16:25:50", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -121,12 +121,12 @@
  }, 
  {
   "depends_on": "with_operations", 
+  "description": "Specify the operations, operating cost and give a unique Operation no to your operations.", 
   "doctype": "DocField", 
   "fieldname": "operations", 
   "fieldtype": "Section Break", 
   "label": "Operations", 
-  "oldfieldtype": "Section Break", 
-  "options": "Specify the operations, operating cost and give a unique Operation no to your operations."
+  "oldfieldtype": "Section Break"
  }, 
  {
   "doctype": "DocField", 
diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/manufacturing/doctype/production_planning_tool/production_planning_tool.py
index f3626a3..ce93d80 100644
--- a/manufacturing/doctype/production_planning_tool/production_planning_tool.py
+++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.py
@@ -72,9 +72,9 @@
 				and (exists (select name from `tabItem` item where item.name=so_item.item_code
 					and (ifnull(item.is_pro_applicable, 'No') = 'Yes' 
 						or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s)
-					or exists (select name from `tabPacked Item` dnpi
-						where dnpi.parent = so.name and dnpi.parent_item = so_item.item_code
-							and exists (select name from `tabItem` item where item.name=dnpi.item_code
+					or exists (select name from `tabPacked Item` pi
+						where pi.parent = so.name and pi.parent_item = so_item.item_code
+							and exists (select name from `tabItem` item where item.name=pi.item_code
 								and (ifnull(item.is_pro_applicable, 'No') = 'Yes' 
 									or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s)))
 			""" % ('%s', so_filter, item_filter, item_filter), self.doc.company, as_dict=1)
@@ -83,6 +83,8 @@
 
 	def add_so_in_table(self, open_so):
 		""" Add sales orders in the table"""
+		self.clear_so_table()
+
 		so_list = [d.sales_order for d in getlist(self.doclist, 'pp_so_details')]
 		for r in open_so:
 			if cstr(r['name']) not in so_list:
@@ -116,19 +118,19 @@
 					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \
 			(", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1)
 		
-		dnpi_items = webnotes.conn.sql("""select distinct dnpi.parent, dnpi.item_code, dnpi.warehouse as reserved_warhouse,
-			(((so_item.qty - ifnull(so_item.delivered_qty, 0)) * dnpi.qty) / so_item.qty) 
+		packed_items = webnotes.conn.sql("""select distinct pi.parent, pi.item_code, pi.warehouse as reserved_warhouse,
+			(((so_item.qty - ifnull(so_item.delivered_qty, 0)) * pi.qty) / so_item.qty) 
 				as pending_qty
-			from `tabSales Order Item` so_item, `tabPacked Item` dnpi
-			where so_item.parent = dnpi.parent and so_item.docstatus = 1 
-			and dnpi.parent_item = so_item.item_code
+			from `tabSales Order Item` so_item, `tabPacked Item` pi
+			where so_item.parent = pi.parent and so_item.docstatus = 1 
+			and pi.parent_item = so_item.item_code
 			and so_item.parent in (%s) and ifnull(so_item.qty, 0) > ifnull(so_item.delivered_qty, 0)
-			and exists (select * from `tabItem` item where item.name=dnpi.item_code
+			and exists (select * from `tabItem` item where item.name=pi.item_code
 				and (ifnull(item.is_pro_applicable, 'No') = 'Yes' 
 					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \
 			(", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1)
 
-		return items + dnpi_items
+		return items + packed_items
 		
 
 	def add_items(self, items):
diff --git a/patches/may_2013/p06_make_notes.py b/patches/may_2013/p06_make_notes.py
index adb3dfd..149547f 100644
--- a/patches/may_2013/p06_make_notes.py
+++ b/patches/may_2013/p06_make_notes.py
@@ -37,7 +37,6 @@
 
 	webnotes.delete_doc("DocType", "Question")
 	webnotes.delete_doc("DocType", "Answer")
-	webnotes.bean("Style Settings").save()
 	
 	# update comment delete
 	webnotes.conn.sql("""update tabDocPerm \
diff --git a/patches/october_2013/p09_update_naming_series_settings.py b/patches/october_2013/p09_update_naming_series_settings.py
index 36632b4..7771b73 100644
--- a/patches/october_2013/p09_update_naming_series_settings.py
+++ b/patches/october_2013/p09_update_naming_series_settings.py
@@ -15,4 +15,5 @@
 	
 	# reset property setters for series
 	for name in ("Stock Settings", "Selling Settings", "Buying Settings", "HR Settings"):
-		webnotes.bean(name, name).save()
\ No newline at end of file
+		webnotes.reload_doc(name.split()[0], 'DocType', name)
+		webnotes.bean(name, name).save()
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index d00926f..49296b0 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -47,6 +47,14 @@
 		if self.doc.lead_name:
 			webnotes.conn.sql("update `tabLead` set status='Converted' where name = %s", self.doc.lead_name)
 
+	def update_address(self):
+		webnotes.conn.sql("""update `tabAddress` set customer_name=%s, modified=NOW() 
+			where customer=%s""", (self.doc.customer_name, self.doc.name))
+
+	def update_contact(self):
+		webnotes.conn.sql("""update `tabContact` set customer_name=%s, modified=NOW() 
+			where customer=%s""", (self.doc.customer_name, self.doc.name))
+
 	def create_account_head(self):
 		if self.doc.company :
 			abbr = self.get_company_abbr()
@@ -99,6 +107,9 @@
 		self.validate_name_with_customer_group()
 		
 		self.update_lead_status()
+		self.update_address()
+		self.update_contact()
+
 		# create account head
 		self.create_account_head()
 		# update credit days and limit in account
@@ -146,10 +157,19 @@
 	def before_rename(self, olddn, newdn, merge=False):
 		from accounts.utils import rename_account_for
 		rename_account_for("Customer", olddn, newdn, merge)
-			
+
 	def after_rename(self, olddn, newdn, merge=False):
+		set_field = ''
 		if webnotes.defaults.get_global_default('cust_master_name') == 'Customer Name':
 			webnotes.conn.set(self.doc, "customer_name", newdn)
+			self.update_contact()
+			set_field = ", customer_name=%(newdn)s"
+		self.update_customer_address(newdn, set_field)
+
+	def update_customer_address(self, newdn, set_field):
+		webnotes.conn.sql("""update `tabAddress` set address_title=%(newdn)s 
+			{set_field} where customer=%(newdn)s"""\
+			.format(set_field=set_field), ({"newdn": newdn}))
 
 @webnotes.whitelist()
 def get_dashboard_info(customer):
diff --git a/selling/sales_common.js b/selling/sales_common.js
index ee55dfa..d6c8fdd 100644
--- a/selling/sales_common.js
+++ b/selling/sales_common.js
@@ -95,7 +95,7 @@
 	refresh: function() {
 		this._super();
 		this.frm.toggle_display("customer_name", 
-			(this.customer_name && this.frm.doc.customer_name!==this.frm.doc.customer));
+			(this.frm.doc.customer_name && this.frm.doc.customer_name!==this.frm.doc.customer));
 		if(this.frm.fields_dict.packing_details) {
 			var packing_list_exists = this.frm.get_doclist({parentfield: "packing_details"}).length;
 			this.frm.toggle_display("packing_list", packing_list_exists ? true : false);
diff --git a/setup/doctype/email_settings/email_settings.txt b/setup/doctype/email_settings/email_settings.txt
index 3689718..6b28f10 100644
--- a/setup/doctype/email_settings/email_settings.txt
+++ b/setup/doctype/email_settings/email_settings.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-25 17:53:21", 
   "docstatus": 0, 
-  "modified": "2013-11-28 11:54:42", 
+  "modified": "2013-12-06 13:12:25", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -103,6 +103,7 @@
   "label": "Auto Email Id"
  }, 
  {
+  "default": "1", 
   "description": "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.", 
   "doctype": "DocField", 
   "fieldname": "send_print_in_body_and_attachment", 
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index 7fb166e..1dc3cd3 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:09", 
   "docstatus": 0, 
-  "modified": "2013-11-03 14:20:19", 
+  "modified": "2013-12-09 16:24:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -229,7 +229,7 @@
   "doctype": "DocField", 
   "fieldname": "po_date", 
   "fieldtype": "Date", 
-  "hidden": 1, 
+  "hidden": 0, 
   "label": "Customer's Purchase Order Date", 
   "no_copy": 0, 
   "oldfieldname": "po_date", 
diff --git a/stock/doctype/serial_no/serial_no.py b/stock/doctype/serial_no/serial_no.py
index dc067ec..bd2704d 100644
--- a/stock/doctype/serial_no/serial_no.py
+++ b/stock/doctype/serial_no/serial_no.py
@@ -150,7 +150,7 @@
 			where serial_no like %s and item_code=%s and ifnull(is_cancelled, 'No')='No' 
 			order by posting_date desc, posting_time desc, name desc""", 
 			("%%%s%%" % self.doc.name, self.doc.item_code), as_dict=1):
-				if self.doc.name in get_serial_nos(sle.serial_no):
+				if self.doc.name.upper() in get_serial_nos(sle.serial_no):
 					if sle.actual_qty > 0:
 						sle_dict.setdefault("incoming", []).append(sle)
 					else:
@@ -268,7 +268,8 @@
 		from tabItem where name=%s""", item_code, as_dict=True)[0]
 		
 def get_serial_nos(serial_no):
-	return [s.strip() for s in cstr(serial_no).strip().replace(',', '\n').split('\n') if s.strip()]
+	return [s.strip() for s in cstr(serial_no).strip().upper().replace(',', '\n').split('\n') 
+		if s.strip()]
 
 def make_serial_no(serial_no, sle):
 	sr = webnotes.new_bean("Serial No")
diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js
index ed41d7d..73fd441 100644
--- a/stock/doctype/stock_entry/stock_entry.js
+++ b/stock/doctype/stock_entry/stock_entry.js
@@ -106,7 +106,7 @@
 				},
 				callback: function(r) {
 					if (!r.exc) {
-						for(d in getchildren('Stock Entry Detail',doc.name,'mtn_details')) {
+						for(d in getchildren('Stock Entry Detail', me.frm.doc.name, 'mtn_details')) {
 							if(!d.expense_account) d.expense_account = r.message;
 						}
 					}
@@ -244,7 +244,7 @@
 
 cur_frm.cscript.toggle_related_fields = function(doc) {
 	disable_from_warehouse = inList(["Material Receipt", "Sales Return"], doc.purpose);
-	disable_to_warehouse = inList(["Material Issue", "Purchase Return"], doc.purpose)
+	disable_to_warehouse = inList(["Material Issue", "Purchase Return"], doc.purpose);
 	
 	cur_frm.toggle_enable("from_warehouse", !disable_from_warehouse);
 	cur_frm.toggle_enable("to_warehouse", !disable_to_warehouse);
@@ -302,7 +302,7 @@
 }
 
 cur_frm.cscript.purpose = function(doc, cdt, cdn) {
-	cur_frm.cscript.toggle_related_fields(doc, cdt, cdn);
+	cur_frm.cscript.toggle_related_fields(doc);
 }
 
 // Overloaded query for link batch_no
diff --git a/stock/doctype/stock_entry/stock_entry.txt b/stock/doctype/stock_entry/stock_entry.txt
index ca9b5f2..18a07a3 100644
--- a/stock/doctype/stock_entry/stock_entry.txt
+++ b/stock/doctype/stock_entry/stock_entry.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-09 11:43:55", 
   "docstatus": 0, 
-  "modified": "2013-11-03 14:11:42", 
+  "modified": "2013-12-09 16:24:10", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -108,7 +108,7 @@
   "doctype": "DocField", 
   "fieldname": "delivery_note_no", 
   "fieldtype": "Link", 
-  "hidden": 1, 
+  "hidden": 0, 
   "in_filter": 0, 
   "label": "Delivery Note No", 
   "no_copy": 1, 
@@ -126,7 +126,7 @@
   "doctype": "DocField", 
   "fieldname": "sales_invoice_no", 
   "fieldtype": "Link", 
-  "hidden": 1, 
+  "hidden": 0, 
   "label": "Sales Invoice No", 
   "no_copy": 1, 
   "options": "Sales Invoice", 
@@ -139,7 +139,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_receipt_no", 
   "fieldtype": "Link", 
-  "hidden": 1, 
+  "hidden": 0, 
   "in_filter": 0, 
   "label": "Purchase Receipt No", 
   "no_copy": 1, 
@@ -299,7 +299,7 @@
   "doctype": "DocField", 
   "fieldname": "production_order", 
   "fieldtype": "Link", 
-  "hidden": 1, 
+  "hidden": 0, 
   "in_filter": 1, 
   "label": "Production Order", 
   "no_copy": 0, 
diff --git a/stock/report/stock_ledger/stock_ledger.js b/stock/report/stock_ledger/stock_ledger.js
index 0e323eb..752d6d2 100644
--- a/stock/report/stock_ledger/stock_ledger.js
+++ b/stock/report/stock_ledger/stock_ledger.js
@@ -15,14 +15,14 @@
 			"fieldname":"from_date",
 			"label": wn._("From Date"),
 			"fieldtype": "Date",
-			"default": wn.defaults.get_user_default("year_start_date"),
+			"default": wn.datetime.add_months(wn.datetime.get_today(), -1),
 			"reqd": 1
 		},
 		{
 			"fieldname":"to_date",
 			"label": wn._("To Date"),
 			"fieldtype": "Date",
-			"default": wn.defaults.get_user_default("year_end_date"),
+			"default": wn.datetime.get_today(),
 			"reqd": 1
 		},
 		{
diff --git a/stock/report/stock_ledger/stock_ledger.py b/stock/report/stock_ledger/stock_ledger.py
index 3ae9135..ea1a60f 100644
--- a/stock/report/stock_ledger/stock_ledger.py
+++ b/stock/report/stock_ledger/stock_ledger.py
@@ -3,37 +3,62 @@
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes import _
 
 def execute(filters=None):
-	columns = ["Date:Datetime:95", "Item:Link/Item:100", "Item Name::100", 
+	columns = get_columns()
+	sl_entries = get_stock_ledger_entries(filters)
+	item_details = get_item_details(filters)
+	
+	data = []
+	for sle in sl_entries:
+		item_detail = item_details[sle.item_code]
+		data.append([sle.date, sle.item_code, item_detail.item_name, item_detail.item_group, 
+			item_detail.brand, item_detail.description, sle.warehouse, item_detail.stock_uom, 
+			sle.actual_qty, sle.qty_after_transaction, sle.stock_value, sle.voucher_type, 
+			sle.voucher_no, sle.batch_no, sle.serial_no, sle.company])
+	
+	return columns, data
+	
+def get_columns():
+	return ["Date:Datetime:95", "Item:Link/Item:100", "Item Name::100", 
 		"Item Group:Link/Item Group:100", "Brand:Link/Brand:100",
 		"Description::200", "Warehouse:Link/Warehouse:100",
 		"Stock UOM:Link/UOM:100", "Qty:Float:50", "Balance Qty:Float:80", 
 		"Balance Value:Currency:100", "Voucher Type::100", "Voucher #::100",
 		"Batch:Link/Batch:100", "Serial #:Link/Serial No:100", "Company:Link/Company:100"]
-
-	data = webnotes.conn.sql("""select concat_ws(" ", posting_date, posting_time),
-			item.name, item.item_name, item.item_group, brand, description, warehouse, sle.stock_uom,
-			actual_qty, qty_after_transaction, stock_value, voucher_type, voucher_no, 
-			batch_no, serial_no, company
-		from `tabStock Ledger Entry` sle,
-			(select name, item_name, description, stock_uom, brand, item_group
-				from `tabItem` {item_conditions}) item
-		where item_code = item.name and
-			company = %(company)s and
+	
+def get_stock_ledger_entries(filters):
+	if not filters.get("company"):
+		webnotes.throw(_("Company is mandatory"))
+	if not filters.get("from_date"):
+		webnotes.throw(_("From Date is mandatory"))
+	if not filters.get("to_date"):
+		webnotes.throw(_("To Date is mandatory"))
+		
+	return webnotes.conn.sql("""select concat_ws(" ", posting_date, posting_time) as date,
+			item_code, warehouse, actual_qty, qty_after_transaction, 
+			stock_value, voucher_type, voucher_no, batch_no, serial_no, company
+		from `tabStock Ledger Entry`
+		where company = %(company)s and
 			posting_date between %(from_date)s and %(to_date)s
 			{sle_conditions}
-			order by posting_date desc, posting_time desc, sle.name desc"""\
-		.format(item_conditions=get_item_conditions(filters),
-			sle_conditions=get_sle_conditions(filters)),
-		filters)
+			order by posting_date desc, posting_time desc, name desc"""\
+		.format(sle_conditions=get_sle_conditions(filters)), filters, as_dict=1)
 
-	return columns, data
+def get_item_details(filters):
+	item_details = {}
+	for item in webnotes.conn.sql("""select name, item_name, description, item_group, 
+			brand, stock_uom from `tabItem` {item_conditions}"""\
+			.format(item_conditions=get_item_conditions(filters)), filters, as_dict=1):
+		item_details.setdefault(item.name, item)
+		
+	return item_details
 	
 def get_item_conditions(filters):
 	conditions = []
 	if filters.get("item_code"):
-		conditions.append("item_code=%(item_code)s")
+		conditions.append("name=%(item_code)s")
 	if filters.get("brand"):
 		conditions.append("brand=%(brand)s")
 	
diff --git a/translations/languages.json b/translations/languages.json
index fe6bf2d..9bffb5c 100644
--- a/translations/languages.json
+++ b/translations/languages.json
@@ -1,4 +1,6 @@
 {
+	"中国（简体）": "zh-cn",
+	"中國（繁體）": "zh-tw",
 	"deutsch": "de",
 	"ελληνικά": "el",
 	"english": "en",
diff --git a/utilities/doctype/address/address.txt b/utilities/doctype/address/address.txt
index 09be67e..5b4ada9 100644
--- a/utilities/doctype/address/address.txt
+++ b/utilities/doctype/address/address.txt
@@ -2,11 +2,12 @@
  {
   "creation": "2013-01-10 16:34:32", 
   "docstatus": 0, 
-  "modified": "2013-07-11 17:02:12", 
+  "modified": "2013-12-12 12:17:46", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
+  "allow_rename": 1, 
   "doctype": "DocType", 
   "document_type": "Master", 
   "icon": "icon-map-marker", 
diff --git a/utilities/doctype/contact/contact.txt b/utilities/doctype/contact/contact.txt
index 199aaea..1c8a5cf 100644
--- a/utilities/doctype/contact/contact.txt
+++ b/utilities/doctype/contact/contact.txt
@@ -2,11 +2,12 @@
  {
   "creation": "2013-01-10 16:34:32", 
   "docstatus": 0, 
-  "modified": "2013-10-08 16:48:50", 
+  "modified": "2013-12-12 12:18:19", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
+  "allow_rename": 1, 
   "doctype": "DocType", 
   "document_type": "Master", 
   "icon": "icon-user", 
