diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/accounts/doctype/journal_voucher/journal_voucher.py
index f4bd55c..c58e9ba 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/accounts/doctype/journal_voucher/journal_voucher.py
@@ -67,6 +67,11 @@
 		remove_against_link_from_jv(self.doc.doctype, self.doc.name, "against_jv")
 		
 		self.make_gl_entries(cancel=1)
+		
+	def on_trash(self):
+		pass
+		#if self.doc.amended_from:
+		#	webnotes.delete_doc("Journal Voucher", self.doc.amended_from)
 
 	def validate_debit_credit(self):
 		for d in getlist(self.doclist, 'entries'):
diff --git a/setup/doctype/company/test_company.py b/setup/doctype/company/test_company.py
index fe793ff..6a174ec 100644
--- a/setup/doctype/company/test_company.py
+++ b/setup/doctype/company/test_company.py
@@ -7,4 +7,10 @@
 		"abbr": "_TC",
 		"default_currency": "INR",
 	}],
+	[{
+		"doctype": "Company",
+		"company_name": "_Test Company 1",
+		"abbr": "_TC1",
+		"default_currency": "USD",
+	}],
 ]
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/test_stock_entry.py b/stock/doctype/stock_entry/test_stock_entry.py
index ded71db..2501893 100644
--- a/stock/doctype/stock_entry/test_stock_entry.py
+++ b/stock/doctype/stock_entry/test_stock_entry.py
@@ -25,7 +25,14 @@
 			where item_code='_Test Item'""")
 			
 		self.assertTrue(mr_name)
-		
+
+	def test_warehouse_company_validation(self):
+		from stock.doctype.stock_ledger_entry.stock_ledger_entry import InvalidWarehouseCompany
+		st1 = webnotes.bean(copy=test_records[0])
+		st1.doclist[1].t_warehouse="_Test Warehouse 2"
+		st1.insert()
+		self.assertRaises(InvalidWarehouseCompany, st1.submit)
+
 	def test_material_receipt_gl_entry(self):
 		webnotes.conn.sql("delete from `tabStock Ledger Entry`")
 		webnotes.defaults.set_global_default("auto_inventory_accounting", 1)
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index 3089a57..5ca7dd5 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -24,7 +24,7 @@
 msgprint = webnotes.msgprint
 from accounts.utils import get_fiscal_year
 
-
+class InvalidWarehouseCompany(Exception): pass
 
 class DocType:
 	def __init__(self, doc, doclist=[]):
@@ -35,6 +35,7 @@
 		self.validate_mandatory()
 		self.validate_item()
 		self.validate_warehouse_user()
+		self.validate_warehouse_company()
 		self.actual_amt_check()
 		self.check_stock_frozen_date()
 		self.scrub_posting_time()
@@ -63,6 +64,13 @@
 			webnotes.msgprint(_("User not allowed entry in the Warehouse") \
 				+ ": " + webnotes.session.user + " / " + self.doc.warehouse, raise_exception = 1)
 
+	def validate_warehouse_company(self):
+		warehouse_company = webnotes.conn.get_value("Warehouse", self.doc.warehouse, "company")
+		if warehouse_company and warehouse_company != self.doc.company:
+			webnotes.msgprint(_("Warehouse does not belong to company.") + " (" + \
+				self.doc.warehouse + ", " + self.doc.company +")", 
+				raise_exception=InvalidWarehouseCompany)
+
 	def validate_mandatory(self):		
 		mandatory = ['warehouse','posting_date','voucher_type','voucher_no','actual_qty','company']
 		for k in mandatory:
diff --git a/stock/doctype/warehouse/test_warehouse.py b/stock/doctype/warehouse/test_warehouse.py
index 99f29c1..26501be 100644
--- a/stock/doctype/warehouse/test_warehouse.py
+++ b/stock/doctype/warehouse/test_warehouse.py
@@ -7,6 +7,12 @@
 	[{
 		"doctype": "Warehouse",
 		"warehouse_name": "_Test Warehouse 1",
-		"warehouse_type": "_Test Warehouse Type"
+		"warehouse_type": "_Test Warehouse Type",
+	}],
+	[{
+		"doctype": "Warehouse",
+		"warehouse_name": "_Test Warehouse 2",
+		"warehouse_type": "_Test Warehouse Type",
+		"company": "_Test Company 1"
 	}]	
 ]
