diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index 3a47374..86491f8 100755
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -168,10 +168,10 @@
 			i.has_serial_no, i.is_stock_item, i.brand, i.stock_uom, i.image,
 			id.expense_account, id.selling_cost_center, id.default_warehouse
 		from
-			`tabItem` i LEFT JOIN `tabItem Default` id ON id.parent = i.name
+			`tabItem` i LEFT JOIN `tabItem Default` id ON id.parent = i.name and id.company = %s
 		where
 			i.disabled = 0 and i.has_variants = 0 and i.is_sales_item = 1
-			and id.company = %s {cond}
+			{cond}
 		""".format(cond=cond), tuple(args_list), as_dict=1)
 
 
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index c09d989..38346dc 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -552,10 +552,10 @@
 				`tab{table}` bom_item
 				JOIN `tabBOM` bom ON bom_item.parent = bom.name
 				JOIN `tabItem` item ON item.name = bom_item.item_code
-				LEFT JOIN `tabItem Default` item_default ON item_default.parent = item.name
+				LEFT JOIN `tabItem Default` item_default
+					ON item_default.parent = item.name and item_default.company = %(company)s
 			where
 				bom_item.docstatus < 2
-				and item_default.company = %(company)s
 				and bom.name = %(bom)s
 				and is_stock_item = 1
 				{where_conditions}
diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py
index 4b2ae54..46fdb85 100644
--- a/erpnext/manufacturing/doctype/production_plan/production_plan.py
+++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py
@@ -298,10 +298,10 @@
 						`tabBOM Explosion Item` bei 
 						JOIN `tabBOM` bom ON bom.name = bei.parent
 						JOIN `tabItem` item ON item.name = bei.item_code
-						LEFT JOIN `tabItem Default` item_default ON item_default.parent = item.name
+						LEFT JOIN `tabItem Default` item_default
+							ON item_default.parent = item.name and item_default.company=%s
 					where
 						bei.docstatus < 2 
-						and item_default.company=%s
 						and bom.name=%s and item.is_stock_item in (1, {0})
 					group by bei.item_code, bei.stock_uom""".format(self.include_non_stock_items),
 					(self.company, data.bom_no), as_dict=1):
@@ -326,11 +326,11 @@
 				`tabBOM Item` bom_item
 				JOIN `tabBOM` bom ON bom.name = bom_item.parent
 				JOIN tabItem item ON bom_item.item_code = item.name
-				LEFT JOIN `tabItem Default` item_default ON item.name = item_default.parent
+				LEFT JOIN `tabItem Default` item_default
+					ON item.name = item_default.parent and item_default.company = %(company)s
 			where
 				bom.name = %(bom)s
 				and bom_item.docstatus < 2
-				and item_default.company = %(company)s
 				and item.is_stock_item in (1, {0})
 			group by bom_item.item_code""".format(self.include_non_stock_items),{
 				'bom': bom_no,
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 8e4a4ca..bf7adac 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -892,10 +892,10 @@
 			i.item_name, i.description, i.stock_uom, i.name, i.is_stock_item, i.item_code, i.item_group,
 			id.expense_account, id.buying_cost_center, id.default_warehouse, id.selling_cost_center, id.default_supplier
 		from
-			`tabItem` i LEFT JOIN `tabItem Default` id ON i.name = id.parent
+			`tabItem` i LEFT JOIN `tabItem Default` id ON i.name = id.parent and id.company = %s
 		where
-			i.name = %s and id.company = %s
-	''', (item, company), as_dict=1)
+			i.name = %s
+	''', (company, item), as_dict=1)
 	if item_defaults:
 		return item_defaults[0]
 	else:
diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py
index 04b4761..5649b3d 100644
--- a/erpnext/stock/doctype/packed_item/packed_item.py
+++ b/erpnext/stock/doctype/packed_item/packed_item.py
@@ -21,9 +21,9 @@
 def get_packing_item_details(item, company):
 	return frappe.db.sql("""
 		select i.item_name, i.description, i.stock_uom, id.default_warehouse
-		from `tabItem` i LEFT JOIN `tabItem Default` id ON id.parent=i.name
-		where i.name = %s and id.company""",
-		(item, company), as_dict = 1)[0]
+		from `tabItem` i LEFT JOIN `tabItem Default` id ON id.parent=i.name and id.company=%s
+		where i.name = %s""",
+		(company, item), as_dict = 1)[0]
 
 def get_bin_qty(item, warehouse):
 	det = frappe.db.sql("""select actual_qty, projected_qty from `tabBin`
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 13b6ce5..3862854 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -566,11 +566,12 @@
 		item = frappe.db.sql("""select i.stock_uom, i.description, i.image, i.item_name, i.item_group,
 				i.has_batch_no, i.sample_quantity, i.has_serial_no,
 				id.expense_account, id.buying_cost_center
-			from `tabItem` i LEFT JOIN `tabItem Default` id ON i.name=id.parent
-			where i.name=%s and id.company=%s
+			from `tabItem` i LEFT JOIN `tabItem Default` id ON i.name=id.parent and id.company=%s
+			where i.name=%s
 				and i.disabled=0
 				and (i.end_of_life is null or i.end_of_life='0000-00-00' or i.end_of_life > %s)""",
-			(args.get('item_code'), self.company, nowdate()), as_dict = 1)
+			(self.company, args.get('item_code'), nowdate()), as_dict = 1)
+
 		if not item:
 			frappe.throw(_("Item {0} is not active or end of life has been reached").format(args.get("item_code")))
 
