diff --git a/erpnext/accounts/doctype/account/test_account.py b/erpnext/accounts/doctype/account/test_account.py
index a4253e2..55383dc 100644
--- a/erpnext/accounts/doctype/account/test_account.py
+++ b/erpnext/accounts/doctype/account/test_account.py
@@ -101,7 +101,7 @@
 def get_inventory_account(company, warehouse=None):
 	account = None
 	if warehouse:
-		account = get_warehouse_account(warehouse, company)
+		account = get_warehouse_account(frappe.get_doc("Warehouse", warehouse))
 	else:
 		account = get_company_default_inventory_account(company)
 
diff --git a/erpnext/stock/__init__.py b/erpnext/stock/__init__.py
index e447415..8ef1415 100644
--- a/erpnext/stock/__init__.py
+++ b/erpnext/stock/__init__.py
@@ -15,33 +15,39 @@
 	if not frappe.flags.warehouse_account_map or frappe.flags.in_test:
 		warehouse_account = frappe._dict()
 
-		for d in frappe.get_all('Warehouse', filters = {"is_group": 0},
-			fields = ["name", "account", "parent_warehouse", "company"]):
+		for d in frappe.get_all('Warehouse',
+			fields = ["name", "account", "parent_warehouse", "company"],
+			order_by="lft, rgt"):
 			if not d.account:
-				d.account = get_warehouse_account(d.name, d.company)
+				d.account = get_warehouse_account(d, warehouse_account)
 
 			if d.account:
-				d.account_currency = frappe.db.get_value('Account', d.account, 'account_currency')
+				d.account_currency = frappe.db.get_value('Account', d.account, 'account_currency', cache=True)
 				warehouse_account.setdefault(d.name, d)
-			
+
 		frappe.flags.warehouse_account_map = warehouse_account
+
 	return frappe.flags.warehouse_account_map
 
-def get_warehouse_account(warehouse, company):
-	lft, rgt = frappe.db.get_value("Warehouse", warehouse, ["lft", "rgt"])
-	account = frappe.db.sql("""
-		select
-			account from `tabWarehouse`
-		where
-			lft <= %s and rgt >= %s and company = %s
-			and account is not null and ifnull(account, '') !=''
-		order by lft desc limit 1""", (lft, rgt, company), as_list=1)
+def get_warehouse_account(warehouse, warehouse_account=None):
+	account = warehouse.account
+	if not account and warehouse.parent_warehouse:
+		if warehouse_account:
+			account = warehouse_account.get(warehouse.parent_warehouse).account
+		else:
+			account = frappe.db.sql("""
+				select
+					account from `tabWarehouse`
+				where
+					lft <= %s and rgt >= %s and company = %s
+					and account is not null and ifnull(account, '') !=''
+				order by lft desc limit 1""", (warehouse.lft, warehouse.rgt, warehouse.company), as_list=1)
 
-	account = account[0][0] if account else None
-	
+			account = account[0][0] if account else None
+
 	if not account:
-		account = get_company_default_inventory_account(company)
-	
+		account = get_company_default_inventory_account(warehouse.company)
+
 	return account
 	
 def get_company_default_inventory_account(company):
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index 0eee6ba..9c47f98 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe, erpnext
-from frappe.utils import cint, validate_email_add
+from frappe.utils import cint
 from frappe import throw, _
 from frappe.utils.nestedset import NestedSet
 from erpnext.stock import get_warehouse_account
@@ -22,7 +22,7 @@
 
 	def onload(self):
 		'''load account name for General Ledger Report'''
-		account = self.account or get_warehouse_account(self.name, self.company)
+		account = self.account or get_warehouse_account(self)
 
 		if account:
 			self.set_onload('account', account)
