diff --git a/controllers/stock_controller.py b/controllers/stock_controller.py
index 54b6d9f..359dc9e 100644
--- a/controllers/stock_controller.py
+++ b/controllers/stock_controller.py
@@ -12,18 +12,17 @@
 
 class StockController(AccountsController):
 	def make_gl_entries(self):
-		if not cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")):
-			return
-		
-		warehouse_account = self.get_warehouse_account()
-		
-		if self.doc.docstatus==1:
-			gl_entries = self.get_gl_entries_for_stock(warehouse_account)
-			make_gl_entries(gl_entries)
-		else:	
+		if self.doc.docstatus == 2:
 			delete_gl_entries(voucher_type=self.doc.doctype, voucher_no=self.doc.name)
+			
+		if cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")):
+			warehouse_account = self.get_warehouse_account()
 		
-		self.update_gl_entries_after(warehouse_account)
+			if self.doc.docstatus==1:
+				gl_entries = self.get_gl_entries_for_stock(warehouse_account)
+				make_gl_entries(gl_entries)
+
+			self.update_gl_entries_after(warehouse_account)
 	
 	def get_gl_entries_for_stock(self, warehouse_account=None, default_expense_account=None,
 			default_cost_center=None):
@@ -96,7 +95,6 @@
 		return warehouse_account
 		
 	def update_gl_entries_after(self, warehouse_account=None):
-		from accounts.utils import get_stock_and_account_difference
 		future_stock_vouchers = self.get_future_stock_vouchers()
 		gle = self.get_voucherwise_gl_entries(future_stock_vouchers)
 		if not warehouse_account:
diff --git a/patches/october_2013/p05_delete_gl_entries_for_cancelled_vouchers.py b/patches/october_2013/p05_delete_gl_entries_for_cancelled_vouchers.py
new file mode 100644
index 0000000..ebe7a69
--- /dev/null
+++ b/patches/october_2013/p05_delete_gl_entries_for_cancelled_vouchers.py
@@ -0,0 +1,17 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+def execute():
+	import webnotes
+	entries = webnotes.conn.sql("""select voucher_type, voucher_no 
+		from `tabGL Entry` group by voucher_type, voucher_no""", as_dict=1)
+	for entry in entries:
+		try:
+			cancelled_voucher = webnotes.conn.sql("""select name from `tab%s` where name = %s
+				and docstatus=2""" % (entry['voucher_type'], "%s"), entry['voucher_no'])
+			if cancelled_voucher:
+				print entry
+				webnotes.conn.sql("""delete from `tabGL Entry` where voucher_type = %s and 
+					voucher_no = %s""", (entry['voucher_type'], entry['voucher_no']))
+		except:
+			pass
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 11bb8dc..565ff99 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -226,4 +226,5 @@
 	"execute:webnotes.delete_doc('Report', 'Item-wise Price List')",
 	"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",
 ]
\ No newline at end of file
