Merge branch 'develop'
diff --git a/config.json b/config.json
index 77a00b8..28d1a3d 100644
--- a/config.json
+++ b/config.json
@@ -1,6 +1,6 @@
 {
  "app_name": "ERPNext", 
- "app_version": "3.2.1", 
+ "app_version": "3.2.2", 
  "base_template": "app/portal/templates/base.html", 
  "modules": {
   "Accounts": {
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 771aafa..a66c446 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -110,12 +110,12 @@
 		self.validate_uom_is_integer("stock_uom", "qty")
 		self.validate_for_items()
 		self.validate_warehouse()
-
+		
 		from stock.doctype.packed_item.packed_item import make_packing_list
 		self.doclist = make_packing_list(self,'sales_order_details')
-
+		
 		self.validate_with_previous_doc()
-				
+		
 		if not self.doc.status:
 			self.doc.status = "Draft"
 
@@ -124,8 +124,7 @@
 			"Cancelled"])
 
 		if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
-		if not self.doc.delivery_status: self.doc.delivery_status = 'Not Delivered'
-		
+		if not self.doc.delivery_status: self.doc.delivery_status = 'Not Delivered'		
 		
 	def validate_warehouse(self):
 		from stock.utils import validate_warehouse_user, validate_warehouse_company
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index 1089a56..b2149b1 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -73,6 +73,9 @@
 		self.update_current_stock()		
 		self.validate_with_previous_doc()
 		
+		from stock.doctype.packed_item.packed_item import make_packing_list
+		self.doclist = make_packing_list(self, 'delivery_note_details')
+		
 		self.doc.status = 'Draft'
 		if not self.doc.installation_status: self.doc.installation_status = 'Not Installed'	
 		
@@ -142,10 +145,6 @@
 			bin = webnotes.conn.sql("select actual_qty, projected_qty from `tabBin` where item_code =	%s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
 			d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
 			d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0
-			
-	def on_update(self):
-		from stock.doctype.packed_item.packed_item import make_packing_list
-		self.doclist = make_packing_list(self, 'delivery_note_details')
 
 	def on_submit(self):
 		self.validate_packed_qty()
diff --git a/stock/doctype/packed_item/packed_item.py b/stock/doctype/packed_item/packed_item.py
index a58444d..ba3cb30 100644
--- a/stock/doctype/packed_item/packed_item.py
+++ b/stock/doctype/packed_item/packed_item.py
@@ -56,9 +56,6 @@
 		pi.batch_no = cstr(line.batch_no)
 	pi.idx = packing_list_idx
 	
-	# saved, since this function is called on_update of delivery note
-	pi.save()
-	
 	packing_list_idx += 1
 
 
@@ -87,19 +84,13 @@
 	for d in obj.doclist.get({"parentfield": "packing_details"}):
 		if [d.parent_item, d.parent_detail_docname] not in parent_items:
 			# mark for deletion from doclist
-			delete_list.append(d.name)
+			delete_list.append([d.parent_item, d.parent_detail_docname])
 
 	if not delete_list:
 		return obj.doclist
 	
 	# delete from doclist
-	obj.doclist = webnotes.doclist(filter(lambda d: d.name not in delete_list, obj.doclist))
-	
-	# delete from db
-	webnotes.conn.sql("""\
-		delete from `tabPacked Item`
-		where name in (%s)"""
-		% (", ".join(["%s"] * len(delete_list))),
-		tuple(delete_list))
+	obj.doclist = webnotes.doclist(filter(lambda d: [d.parent_item, d.parent_detail_docname] 
+		not in delete_list, obj.doclist))
 		
 	return obj.doclist
\ No newline at end of file