diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 961d97e..761f1a9 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -187,3 +187,4 @@
 erpnext.patches.v5_4.set_root_and_report_type
 erpnext.patches.v5_4.notify_system_managers_regarding_wrong_tax_calculation
 erpnext.patches.v5_4.fix_invoice_outstanding
+execute:frappe.db.sql("update `tabStock Ledger Entry` set stock_queue = '[]' where voucher_type = 'Stock Reconciliation' and ifnull(qty_after_transaction, 0) = 0")
\ No newline at end of file
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index a5deb30..c92663f 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -300,22 +300,22 @@
 
 				# select first batch or the batch with same rate
 				batch = self.stock_queue[index]
+				if batch[0]:
+					if qty_to_pop >= batch[0]:
+						# consume current batch
+						qty_to_pop = qty_to_pop - batch[0]
+						self.stock_queue.pop(index)
+						if not self.stock_queue and qty_to_pop:
+							# stock finished, qty still remains to be withdrawn
+							# negative stock, keep in as a negative batch
+							self.stock_queue.append([-qty_to_pop, outgoing_rate or batch[1]])
+							break
 
-				if qty_to_pop >= batch[0]:
-					# consume current batch
-					qty_to_pop = qty_to_pop - batch[0]
-					self.stock_queue.pop(index)
-					if not self.stock_queue and qty_to_pop:
-						# stock finished, qty still remains to be withdrawn
-						# negative stock, keep in as a negative batch
-						self.stock_queue.append([-qty_to_pop, outgoing_rate or batch[1]])
-						break
-
-				else:
-					# qty found in current batch
-					# consume it and exit
-					batch[0] = batch[0] - qty_to_pop
-					qty_to_pop = 0
+					else:
+						# qty found in current batch
+						# consume it and exit
+						batch[0] = batch[0] - qty_to_pop
+						qty_to_pop = 0
 
 		stock_value = sum((flt(batch[0]) * flt(batch[1]) for batch in self.stock_queue))
 		stock_qty = sum((flt(batch[0]) for batch in self.stock_queue))
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index ee4303b..4f1e427 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -133,19 +133,20 @@
 		qty_to_pop = abs(qty)
 		while qty_to_pop and previous_stock_queue:
 			batch = previous_stock_queue[0]
-			if 0 < batch[0] <= qty_to_pop:
-				# if batch qty > 0
-				# not enough or exactly same qty in current batch, clear batch
-				available_qty_for_outgoing += flt(batch[0])
-				outgoing_cost += flt(batch[0]) * flt(batch[1])
-				qty_to_pop -= batch[0]
-				previous_stock_queue.pop(0)
-			else:
-				# all from current batch
-				available_qty_for_outgoing += flt(qty_to_pop)
-				outgoing_cost += flt(qty_to_pop) * flt(batch[1])
-				batch[0] -= qty_to_pop
-				qty_to_pop = 0
+			if batch[0]:
+				if 0 < batch[0] <= qty_to_pop:
+					# if batch qty > 0
+					# not enough or exactly same qty in current batch, clear batch
+					available_qty_for_outgoing += flt(batch[0])
+					outgoing_cost += flt(batch[0]) * flt(batch[1])
+					qty_to_pop -= batch[0]
+					previous_stock_queue.pop(0)
+				else:
+					# all from current batch
+					available_qty_for_outgoing += flt(qty_to_pop)
+					outgoing_cost += flt(qty_to_pop) * flt(batch[1])
+					batch[0] -= qty_to_pop
+					qty_to_pop = 0
 
 		return outgoing_cost / available_qty_for_outgoing
 
