diff --git a/patches/september_2013/p01_fix_buying_amount_gl_entries.py b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
index 22017b4..7379c30 100644
--- a/patches/september_2013/p01_fix_buying_amount_gl_entries.py
+++ b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
@@ -32,29 +32,17 @@
 	# update missing expense account and cost center
 	for item in bean.doclist.get({"parentfield": parentfield}):
 		if item.buying_amount and not (item.expense_account and item.cost_center):
-			item_values = webnotes.conn.get_value("Item", item.item_code, 
-				["purchase_account", "default_sales_cost_center"])
-			company_values = webnotes.conn.get_value("Company", bean.doc.company, 
-				["default_expense_account", "cost_center", "stock_adjustment_cost_center"])
-			if not item.expense_account:
-				item.expense_account = (item_values and item_values[0]) or (company_values and company_values[0])
-					
-			if not item.cost_center:
-				item.cost_center = (item_values and item_values[1]) or \
-					(company_values and (company_values[1] or company_values[2]))
-					
-			if not (item.expense_account and item.cost_center):
-				res = webnotes.conn.sql("""select expense_account, cost_center
-					from `tab%s` child where docstatus=1 and item_code=%s and
-						ifnull(expense_account, '')!='' and ifnull(cost_center, '')!='' and
-						(select company from `tab%s` parent where parent.name=child.parent)=%s
-						order by creation desc limit 1""" % (item.doctype, "%s", doctype, "%s"), 
-						(item.item_code, bean.doc.company))
-				if res:
-					if not item.expense_account:
-						item.expense_account = res[0][0]
-					if not item.cost_center:
-						item.cost_center = res[0][1]
+			res = webnotes.conn.sql("""select expense_account, cost_center
+				from `tab%s` child where docstatus=1 and item_code=%s and
+					ifnull(expense_account, '')!='' and ifnull(cost_center, '')!='' and
+					(select company from `tab%s` parent where parent.name=child.parent)=%s
+					order by creation desc limit 1""" % (item.doctype, "%s", doctype, "%s"), 
+					(item.item_code, bean.doc.company))
+			if res:
+				if not item.expense_account:
+					item.expense_account = res[0][0]
+				if not item.cost_center:
+					item.cost_center = res[0][1]
 			
 			webnotes.conn.set_value(item.doctype, item.name, "expense_account", item.expense_account)
 			webnotes.conn.set_value(item.doctype, item.name, "cost_center", item.cost_center)
