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 7812a2a..0a25cd4 100644
--- a/patches/september_2013/p01_fix_buying_amount_gl_entries.py
+++ b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
@@ -12,12 +12,12 @@
 	
 	# fix delivery note
 	for dn in webnotes.conn.sql_list("""select name from `tabDelivery Note` where docstatus=1
-		and posting_date >= "2013-08-06" """):
+		and posting_date >= "2013-08-06" order by posting_date"""):
 			recreate_gl_entries("Delivery Note", dn, "delivery_note_details")
 	
 	# fix sales invoice
 	for si in webnotes.conn.sql_list("""select name from `tabSales Invoice` where docstatus=1
-		and update_stock=1 and posting_date >= "2013-08-06" """):
+		and update_stock=1 and posting_date >= "2013-08-06" order by posting_date"""):
 			recreate_gl_entries("Sales Invoice", si, "entries")
 	
 def recreate_gl_entries(doctype, name, parentfield):
@@ -27,24 +27,34 @@
 	
 	# 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):
+		if item.buying_amount and not validate_item_values(item, bean.doc.company):
 			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 `tabAccount` ac where ac.name=child.expense_account)=%s and
-					(select company from `tabCost Center` cc where cc.name=child.cost_center)=%s
+					(select company from `tabCost Center` cc where cc.name=child.cost_center)=%s and
 					order by creation desc limit 1""" % (item.doctype, "%s", "%s", "%s"), 
 					(item.item_code, bean.doc.company, 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]
-			
+				item.expense_account = res[0][0]
+				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)
 	
 	# remove gl entries
 	webnotes.conn.sql("""delete from `tabGL Entry` where voucher_type=%s
 		and voucher_no=%s""", (doctype, name))
-	bean.run_method("make_gl_entries")
\ No newline at end of file
+	bean.run_method("make_gl_entries")
+	
+def validate_item_values(item, company):
+	if item.expense_account and \
+		webnotes.conn.get_value("Account", item.expense_account, "company")!=company:
+			return False
+	elif item.cost_center and \
+		webnotes.conn.get_value("Cost Center", item.cost_center, "company")!=company:
+			return False
+	elif not (item.expense_account and item.cost_center):
+		return False
+		
+	return True
\ No newline at end of file
