diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index 7e49e60..25d76aa 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -24,7 +24,7 @@
 			self.doc.supplier_name = webnotes.conn.get_value("Supplier", 
 				self.doc.supplier, "supplier_name")
 		self.validate_stock_or_nonstock_items()
-		self.validate_warehouse_belongs_to_company()
+		self.validate_warehouse()
 		
 	def set_missing_values(self, for_validate=False):
 		super(BuyingController, self).set_missing_values(for_validate)
@@ -49,17 +49,20 @@
 				if supplier:
 					self.doc.supplier = supplier
 					break
+					
+	def validate_warehouse(self):
+		from stock.utils import validate_warehouse_user, validate_warehouse_company
+		
+		warehouses = list(set([d.warehouse for d in 
+			self.doclist.get({"doctype": self.tname}) if d.warehouse]))
+				
+		for w in warehouses:
+			validate_warehouse_user(w)
+			validate_warehouse_company(w, self.doc.company)
 
 	def get_purchase_tax_details(self):
 		self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details")
 		self.set_taxes("purchase_tax_details", "purchase_other_charges")
-		
-	def validate_warehouse_belongs_to_company(self):
-		for warehouse, company in webnotes.conn.get_values("Warehouse", 
-			self.doclist.get_distinct_values("warehouse"), "company").items():
-			if company and company != self.doc.company:
-				webnotes.msgprint(_("Company mismatch for Warehouse") + (": %s" % (warehouse,)),
-					raise_exception=WrongWarehouseCompany)
 
 	def validate_stock_or_nonstock_items(self):
 		if not self.get_stock_items():
diff --git a/manufacturing/doctype/production_order/production_order.py b/manufacturing/doctype/production_order/production_order.py
index 6447c0a..719d149 100644
--- a/manufacturing/doctype/production_order/production_order.py
+++ b/manufacturing/doctype/production_order/production_order.py
@@ -22,13 +22,14 @@
 		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
 			"In Process", "Completed", "Cancelled"])
 
-		if self.doc.production_item :
-			item_detail = sql("select name from `tabItem` where name = '%s' and docstatus != 2"
-			 	% self.doc.production_item, as_dict = 1)
-			if not item_detail:
-				msgprint("Item '%s' does not exist or cancelled in the system." 
-					% cstr(self.doc.production_item), raise_exception=1)
-
+		self.validate_bom_no()
+		self.validate_sales_order()
+		self.validate_warehouse()
+		
+		from utilities.transaction_base import validate_uom_is_integer
+		validate_uom_is_integer(self.doclist, "stock_uom", ["qty", "produced_qty"])
+		
+	def validate_bom_no(self):
 		if self.doc.bom_no:
 			bom = sql("""select name from `tabBOM` where name=%s and docstatus=1 
 				and is_active=1 and item=%s"""
@@ -38,16 +39,20 @@
 					May be BOM not exists or inactive or not submitted 
 					or for some other item.""" % cstr(self.doc.bom_no), raise_exception=1)
 					
+	def validate_sales_order(self):
 		if self.doc.sales_order:
 			if not webnotes.conn.sql("""select name from `tabSales Order` 
 					where name=%s and docstatus = 1""", self.doc.sales_order):
 				msgprint("Sales Order: %s is not valid" % self.doc.sales_order, raise_exception=1)
-				
+			
 			self.validate_production_order_against_so()
-
-		from utilities.transaction_base import validate_uom_is_integer
-		validate_uom_is_integer(self.doclist, "stock_uom", ["qty", "produced_qty"])
-
+			
+	def validate_warehouse(self):
+		from stock.utils import validate_warehouse_user, validate_warehouse_company
+		
+		for w in [self.doc.fg_warehouse, self.doc.wip_warehouse]:
+			validate_warehouse_user(w)
+			validate_warehouse_company(w, self.doc.company)
 	
 	def validate_production_order_against_so(self):
 		# already ordered qty
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 1ccccdd..435a976 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -127,7 +127,7 @@
 		self.validate_po()
 		self.validate_uom_is_integer("stock_uom", "qty")
 		self.validate_for_items()
-		self.validate_warehouse_user()
+		self.validate_warehouse()
 		sales_com_obj = get_obj(dt = 'Sales Common')
 		sales_com_obj.check_active_sales_items(self)
 		sales_com_obj.check_conversion_rate(self)
@@ -148,14 +148,15 @@
 		if not self.doc.delivery_status: self.doc.delivery_status = 'Not Delivered'
 		
 		
-	def validate_warehouse_user(self):
-		from stock.utils import validate_warehouse_user
+	def validate_warehouse(self):
+		from stock.utils import validate_warehouse_user, validate_warehouse_company
 		
 		warehouses = list(set([d.reserved_warehouse for d in 
 			self.doclist.get({"doctype": self.tname}) if d.reserved_warehouse]))
 				
 		for w in warehouses:
 			validate_warehouse_user(w)
+			validate_warehouse_company(w, self.doc.company)
 		
 	def validate_with_previous_doc(self):
 		super(DocType, self).validate_with_previous_doc(self.tname, {
diff --git a/stock/doctype/material_request/material_request.py b/stock/doctype/material_request/material_request.py
index 249062f..d1672ba 100644
--- a/stock/doctype/material_request/material_request.py
+++ b/stock/doctype/material_request/material_request.py
@@ -68,22 +68,14 @@
 			self.doc.status = "Draft"
 
 		import utilities
-		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
-			"Cancelled"])
+		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", "Cancelled"])
 		
-		# restrict material request type
 		self.validate_value("material_request_type", "in", ["Purchase", "Transfer"])
 
-		# Get Purchase Common Obj
 		pc_obj = get_obj(dt='Purchase Common')
-
-
-		# Validate for items
 		pc_obj.validate_for_items(self)
-		
-		# Validate qty against SO
-		self.validate_qty_against_so()
 
+		self.validate_qty_against_so()
 	
 	def update_bin(self, is_submit, is_stopped):
 		""" Update Quantity Requested for Purchase in Bin for Material Request of type 'Purchase'"""
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index c29ca3a..6fea546 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -7,7 +7,6 @@
 from webnotes.utils import cint, flt, getdate, cstr
 from webnotes.model.controller import DocListController
 
-class InvalidWarehouseCompany(ValidationError): pass
 class SerialNoNotRequiredError(ValidationError): pass
 class SerialNoRequiredError(ValidationError): pass
 class SerialNoQtyError(ValidationError): pass
@@ -25,7 +24,7 @@
 		self.doclist = doclist
 
 	def validate(self):
-		from stock.utils import validate_warehouse_user
+		from stock.utils import validate_warehouse_user, validate_warehouse_company
 		if not hasattr(webnotes, "new_stock_ledger_entries"):
 			webnotes.new_stock_ledger_entries = []
 			
@@ -33,7 +32,7 @@
 		self.validate_mandatory()
 		self.validate_item()
 		validate_warehouse_user(self.doc.warehouse)
-		self.validate_warehouse_company()
+		validate_warehouse_company(self.doc.warehouse, self.doc.company)
 		self.scrub_posting_time()
 		
 		from accounts.utils import validate_fiscal_year
@@ -63,13 +62,6 @@
 					as on %(posting_date)s %(posting_time)s""" % self.doc.fields)
 
 				sself.doc.fields.pop('batch_bal')
-			 
-	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']
diff --git a/stock/utils.py b/stock/utils.py
index 8836c6c..1f50164 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -9,6 +9,7 @@
 from webnotes.utils.email_lib import sendmail
 
 class UserNotAllowedForWarehouse(webnotes.ValidationError): pass
+class InvalidWarehouseCompany(webnotes.ValidationError): pass
 	
 def get_stock_balance_on(warehouse, posting_date=None):
 	if not posting_date: posting_date = nowdate()
@@ -216,6 +217,12 @@
 	if warehouse_users and not (webnotes.session.user in warehouse_users):
 		webnotes.throw(_("Not allowed entry in Warehouse") \
 			+ ": " + warehouse, UserNotAllowedForWarehouse)
+			
+def validate_warehouse_company(warehouse, company):
+	warehouse_company = webnotes.conn.get_value("Warehouse", warehouse, "company")
+	if warehouse_company and warehouse_company != company:
+		webnotes.msgprint(_("Warehouse does not belong to company.") + " (" + \
+			warehouse + ", " + company +")", raise_exception=InvalidWarehouseCompany)
 
 def get_sales_bom_buying_amount(item_code, warehouse, voucher_type, voucher_no, voucher_detail_no, 
 		stock_ledger_entries, item_sales_bom):
