diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
index 66d50ba..0c8fba6 100644
--- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
@@ -70,6 +70,20 @@
 		from erpnext.utilities.transaction_base import UOMMustBeIntegerError
 		po = create_purchase_order(qty=3.4, do_not_save=True)
 		self.assertRaises(UOMMustBeIntegerError, po.insert)
+	
+	def test_ordered_qty_for_closing_po(self):
+		from erpnext.stock.doctype.item.test_item import make_item
+		
+		item = make_item("_Test Close Item", {"is_stock_item": 1, "is_sales_item": 1,
+			"is_purchase_item": 1})
+			
+		po = create_purchase_order(item_code=item.item_code, qty=1)
+		
+		self.assertEquals(get_ordered_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 1)
+		
+		po.update_status("Closed")
+		
+		self.assertEquals(get_ordered_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 0)
 
 def create_purchase_order(**args):
 	po = frappe.new_doc("Purchase Order")
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index 71c78bb..459b35f 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -324,17 +324,48 @@
 				"conversion_factor": 1.0
 			}
 		]
-
+		
+		existing_ordered_qty, existing_reserved_qty = frappe.db.get_value("Bin", {"item_code": po_item.item_code, 
+			"Warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
+					
 		so = make_sales_order(item_list=so_items)
 		po = make_purchase_order_for_drop_shipment(so.name, '_Test Supplier')
+		po.submit()
+		
 		dn = make_delivery_note(so.name)
+		
 
 		self.assertEquals(so.customer, po.customer)
 		self.assertEquals(po.items[0].prevdoc_doctype, "Sales Order")
 		self.assertEquals(po.items[0].prevdoc_docname, so.name)
 		self.assertEquals(po.items[0].item_code, po_item.item_code)
 		self.assertEquals(dn.items[0].item_code, dn_item.item_code)
-
+		
+		#test ordered_qty and reserved_qty		
+		ordered_qty, reserved_qty = frappe.db.get_value("Bin", {"item_code": po_item.item_code, 
+			"Warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
+					
+		self.assertEquals(abs(ordered_qty), (existing_ordered_qty + so_items[0]['qty']))			
+		self.assertEquals(abs(reserved_qty), (existing_reserved_qty + so_items[0]['qty']))	
+		
+		#test po_item length
+		self.assertEquals(len(po.items), 1)
+		
+	def test_reserved_qty_for_closing_so(self):
+		from erpnext.stock.doctype.item.test_item import make_item
+		
+		item = make_item("_Test Close Item", {"is_stock_item": 1, "is_sales_item": 1,
+			"is_purchase_item": 1})
+			
+		so = make_sales_order(item_code=item.item_code, qty=1)
+		
+		self.assertEquals(get_reserved_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 1)
+		
+		so.stop_sales_order("Closed")
+		
+		self.assertEquals(get_reserved_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 0)
+		
+		
 def make_sales_order(**args):
 	so = frappe.new_doc("Sales Order")
 	args = frappe._dict(args)
