diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 8686081..7e637cc 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -338,7 +338,7 @@
 				if not d['reserved_warehouse']:
 					msgprint("""Please enter Reserved Warehouse for item %s 
 						as it is stock Item""" % d['item_code'], raise_exception=1)
-						
+					
 				args = {
 					"item_code": d['item_code'],
 					"reserved_qty": flt(update_stock) * flt(d['qty']),
diff --git a/selling/doctype/sales_order/test_sales_order.py b/selling/doctype/sales_order/test_sales_order.py
new file mode 100644
index 0000000..f1a159a
--- /dev/null
+++ b/selling/doctype/sales_order/test_sales_order.py
@@ -0,0 +1,84 @@
+import webnotes
+from webnotes.utils import flt
+import unittest
+
+class TestSalesOrder(unittest.TestCase):
+	def make(self):
+		w = webnotes.model_wrapper(webnotes.copy_doclist(test_records[0]))
+		w.insert()
+		w.submit()
+		return w
+		
+	def get_bin_reserved_qty(self, item_code, warehouse):
+		return flt(webnotes.conn.get_value("Bin", {"item_code": item_code, "warehouse": warehouse}, 
+			"reserved_qty"))
+		
+	def test_reserved_qty_so_submit_cancel(self):		
+		# submit
+		so = self.make()
+		print self.get_bin_reserved_qty(so.doclist[1].item_code, 
+			so.doclist[1].reserved_warehouse)
+
+		reserved_qty = self.get_bin_reserved_qty(so.doclist[1].item_code, 
+			so.doclist[1].reserved_warehouse)
+		self.assertEqual(reserved_qty, 10.0)
+		# cancel
+		so.cancel()
+		reserved_qty = self.get_bin_reserved_qty(so.doclist[1].item_code, 
+			so.doclist[1].reserved_warehouse)
+		self.assertEqual(reserved_qty, 0.0)
+	
+	def test_reserved_qty_dn_submit_cancel(self):
+		so = self.make()
+		
+		# allow negative stock
+		webnotes.conn.set_default("allow_negative_stock", 1)
+		
+		# dn submit (against so)
+		from stock.doctype.delivery_note.test_delivery_note import test_records as dn_test_records
+		dn = webnotes.model_wrapper(webnotes.copy_doclist(dn_test_records[0]))
+		dn.doclist[1].prevdoc_doctype = "Sales Order"
+		dn.doclist[1].prevdoc_docname = so.doc.name
+		dn.doclist[1].prevdoc_detail_docname = so.doclist[1].name
+		dn.insert()
+		dn.submit()
+		
+		reserved_qty = self.get_bin_reserved_qty(so.doclist[1].item_code, 
+			so.doclist[1].reserved_warehouse)
+		self.assertEqual(reserved_qty, 6.0)
+		
+test_records = [
+	[
+		{
+			"company": "_Test Company", 
+			"conversion_rate": 1.0, 
+			"currency": "INR", 
+			"customer": "_Test Customer", 
+			"customer_name": "_Test Customer",
+			"customer_group": "_Test Customer Group", 
+			"doctype": "Sales Order", 
+			"fiscal_year": "_Test Fiscal Year 2013", 
+			"order_type": "Sales",
+			"delivery_date": "2013-02-23",
+			"plc_conversion_rate": 1.0, 
+			"price_list_currency": "INR", 
+			"price_list_name": "_Test Price List", 
+			"territory": "_Test Territory", 
+			"transaction_date": "2013-02-21",
+			"grand_total": 500.0, 
+			"grand_total_export": 500.0, 
+		}, 
+		{
+			"description": "CPU", 
+			"doctype": "Sales Order Item", 
+			"item_code": "_Test Item Home Desktop 100", 
+			"item_name": "CPU", 
+			"parentfield": "sales_order_details", 
+			"qty": 10.0,
+			"basic_rate": 50.0,
+			"export_rate": 50.0,
+			"amount": 500.0,
+			"reserved_warehouse": "_Test Warehouse",
+		}
+	]
+]
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/test_delivery_note.py b/stock/doctype/delivery_note/test_delivery_note.py
new file mode 100644
index 0000000..4666360
--- /dev/null
+++ b/stock/doctype/delivery_note/test_delivery_note.py
@@ -0,0 +1,36 @@
+test_records = [
+	[
+		{
+			"company": "_Test Company", 
+			"conversion_rate": 1.0, 
+			"currency": "INR", 
+			"customer": "_Test Customer", 
+			"customer_name": "_Test Customer",
+			"doctype": "Delivery Note", 
+			"fiscal_year": "_Test Fiscal Year 2013", 
+			"plc_conversion_rate": 1.0, 
+			"posting_date": "2013-02-21", 
+			"posting_time": "9:00:00", 
+			"price_list_currency": "INR", 
+			"price_list_name": "_Test Price List", 
+			"status": "Draft", 
+			"territory": "_Test Territory",
+			"grand_total": 500.0, 
+			"grand_total_export": 500.0,
+		}, 
+		{
+			"description": "CPU", 
+			"doctype": "Delivery Note Item", 
+			"item_code": "_Test Item Home Desktop 100", 
+			"item_name": "CPU", 
+			"parentfield": "delivery_note_details", 
+			"qty": 4.0, 
+			"basic_rate": 50.0,
+			"export_rate": 50.0,
+			"amount": 500.0,
+			"warehouse": "_Test Warehouse",
+			"stock_uom": "No."
+		}
+	]
+	
+]
\ No newline at end of file
