diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py
index 2fd6516..a09a3a8 100644
--- a/erpnext/stock/doctype/packed_item/packed_item.py
+++ b/erpnext/stock/doctype/packed_item/packed_item.py
@@ -20,7 +20,7 @@
 
 def get_packing_item_details(item, company):
 	return frappe.db.sql("""
-		select i.item_name, i.description, i.stock_uom, id.default_warehouse
+		select i.item_name, i.is_stock_item, i.description, i.stock_uom, id.default_warehouse
 		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]
@@ -30,7 +30,7 @@
 		where item_code = %s and warehouse = %s""", (item, warehouse), as_dict = 1)
 	return det and det[0] or frappe._dict()
 
-def update_packing_list_item(doc, packing_item_code, qty, main_item_row, description):	
+def update_packing_list_item(doc, packing_item_code, qty, main_item_row, description):
 	item = get_packing_item_details(packing_item_code, doc.company)
 
 	# check if exists
@@ -53,7 +53,7 @@
 	if description and not pi.description:
 		pi.description = description
 	if not pi.warehouse:
-		pi.warehouse = (main_item_row.warehouse if ((doc.get('is_pos')
+		pi.warehouse = (main_item_row.warehouse if ((doc.get('is_pos') or item.is_stock_item \
 			or not item.default_warehouse) and main_item_row.warehouse) else item.default_warehouse)
 
 	if not pi.batch_no:
@@ -108,8 +108,8 @@
 			"qty": flt(args["quantity"]) * flt(item.qty)
 		})
 		items.append(get_item_details(args))
-		
+
 	return items
-	
+
 def on_doctype_update():
 	frappe.db.add_index("Packed Item", ["item_code", "warehouse"])
