diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index a1468e1..9e2bf1d 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -188,7 +188,7 @@
 					reserved_qty_for_main_item = -(so_qty - already_delivered_qty)
 				else:
 					reserved_qty_for_main_item = -flt(d.qty)
-
+					
 			if self.has_product_bundle(d.item_code):
 				for p in self.get("packed_items"):
 					if p.parent_detail_docname == d.name and p.parent_item == d.item_code:
@@ -229,10 +229,12 @@
 			and against_sales_order = %s
 			and parent != %s""", (so_detail, so, current_docname))
 			
-		delivered_via_si = frappe.db.sql("""select sum(qty) from `tabSales Invoice Item`
-			where so_detail = %s and docstatus = 1
-			and sales_order = %s
-			and parent != %s""", (so_detail, so, current_docname))
+		delivered_via_si = frappe.db.sql("""select sum(si_item.qty) 
+			from `tabSales Invoice Item` si_item, `tabSales Invoice` si
+			where si_item.parent = si.name and ifnull(si.update_stock, 0) = 1
+			and si_item.so_detail = %s and si.docstatus = 1 
+			and si_item.sales_order = %s
+			and si.name != %s""", (so_detail, so, current_docname))
 			
 		total_delivered_qty = (flt(delivered_via_dn[0][0]) if delivered_via_dn else 0) \
 			+ (flt(delivered_via_si[0][0]) if delivered_via_si else 0)
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 1a7b209..87a5551 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -137,7 +137,6 @@
 erpnext.patches.v5_0.update_sms_sender
 erpnext.patches.v5_0.set_appraisal_remarks
 erpnext.patches.v5_0.update_time_log_title
-erpnext.patches.v4_2.repost_reserved_qty
 erpnext.patches.v4_2.repost_sle_for_si_with_no_warehouse
 erpnext.patches.v5_0.newsletter
 execute:frappe.delete_doc("DocType", "Chart of Accounts")
@@ -192,3 +191,4 @@
 erpnext.patches.v5_4.cleanup_journal_entry #2015-08-14
 execute:frappe.db.sql("update `tabProduction Order` pro set description = (select description from tabItem where name=pro.production_item) where ifnull(description, '') = ''")
 erpnext.patches.v5_7.item_template_attributes
+erpnext.patches.v4_2.repost_reserved_qty #2015-08-17
diff --git a/erpnext/patches/v4_2/repost_reserved_qty.py b/erpnext/patches/v4_2/repost_reserved_qty.py
index 04dfb77..f91968c 100644
--- a/erpnext/patches/v4_2/repost_reserved_qty.py
+++ b/erpnext/patches/v4_2/repost_reserved_qty.py
@@ -6,7 +6,22 @@
 from erpnext.utilities.repost_stock import update_bin_qty, get_reserved_qty
 
 def execute():
-	for item_code, warehouse in frappe.db.sql("select item_code, warehouse from tabBin where ifnull(reserved_qty, 0) < 0"):
-		update_bin_qty(item_code, warehouse, {
-			"reserved_qty": get_reserved_qty(item_code, warehouse)
-		})
\ No newline at end of file
+	repost_for = frappe.db.sql("""
+		select 
+			distinct item_code, warehouse 
+		from 
+			(
+				(
+					select distinct item_code, warehouse 
+								from `tabSales Order Item` where docstatus=1
+				) UNION (
+					select distinct item_code, warehouse 
+					from `tabPacked Item` where docstatus=1 and parenttype='Sales Order'
+				)
+			) items
+	""")
+	
+	for item_code, warehouse in repost_for:
+			update_bin_qty(item_code, warehouse, {
+				"reserved_qty": get_reserved_qty(item_code, warehouse)
+			})
\ No newline at end of file
diff --git a/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py b/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py
index f1632ab..251dd56 100644
--- a/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py
+++ b/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from erpnext.utilities.repost_stock import update_bin_qty, get_reserved_qty, repost_actual_qty
+from erpnext.utilities.repost_stock import repost_actual_qty
 
 def execute():
 	cancelled_invoices = frappe.db.sql_list("""select name from `tabSales Invoice` 
@@ -19,10 +19,4 @@
 			% (', '.join(['%s']*len(cancelled_invoices))), tuple(cancelled_invoices))
 			
 		for item_code, warehouse in repost_for:
-			repost_actual_qty(item_code, warehouse)
-			
-	for item_code, warehouse in frappe.db.sql("""select distinct item_code, warehouse 
-		from `tabPacked Item` where parenttype = 'Sales Invoice' and docstatus = 1"""):
-			update_bin_qty(item_code, warehouse, {
-				"reserved_qty": get_reserved_qty(item_code, warehouse)
-			})
\ No newline at end of file
+			repost_actual_qty(item_code, warehouse)
\ No newline at end of file
