packing list issue fixed
diff --git a/erpnext/selling/doctype/sales_common/sales_common.py b/erpnext/selling/doctype/sales_common/sales_common.py
index 74963fb..ff65e8c 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.py
+++ b/erpnext/selling/doctype/sales_common/sales_common.py
@@ -410,7 +410,7 @@
 						
 			if self.has_sales_bom(d.item_code):
 				for p in getlist(obj.doclist, 'packing_details'):
-					if p.parent_detail_docname == d.name:
+					if p.parent_detail_docname == d.name and p.parent_item == d.item_code:
 						# the packing details table's qty is already multiplied with parent's qty
 						il.append({
 							'warehouse': d.warehouse,
@@ -525,7 +525,9 @@
 			if [d.item_code, d.name] not in parent_items:
 				parent_items.append([d.item_code, d.name])
 				
-		self.cleanup_packing_list(obj, parent_items)
+		obj.doclist = self.cleanup_packing_list(obj, parent_items)
+		
+		return obj.doclist
 		
 	def cleanup_packing_list(self, obj, parent_items):
 		"""Remove all those child items which are no longer present in main item table"""
@@ -546,6 +548,8 @@
 			where name in (%s)"""
 			% (", ".join(["%s"] * len(delete_list))),
 			tuple(delete_list))
+			
+		return obj.doclist
 
 	# Get total in words
 	# ==================================================================	
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 02bffca..fc7f4bc 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -316,7 +316,7 @@
 		sales_com_obj.validate_max_discount(self,'sales_order_details')
 				# this is to verify that the allocated % of sales persons is 100%
 		sales_com_obj.get_allocated_sum(self)
-		sales_com_obj.make_packing_list(self,'sales_order_details')
+		self.doclist = sales_com_obj.make_packing_list(self,'sales_order_details')
 
 				# get total in words
 		dcc = TransactionBase().get_company_currency(self.doc.company)		
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index ad95cf1..ce83db0 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -434,7 +434,7 @@
 
 
 	def on_update(self):
-		get_obj('Sales Common').make_packing_list(self,'delivery_note_details')
+		self.doclist = get_obj('Sales Common').make_packing_list(self,'delivery_note_details')
 		self.set_actual_qty()
 		get_obj('Stock Ledger').scrub_serial_nos(self)