diff --git a/erpnext/accounts/doctype/account/account_treeview.js b/erpnext/accounts/doctype/account/account_treeview.js
index 673ef9f..ce5eb8f 100644
--- a/erpnext/accounts/doctype/account/account_treeview.js
+++ b/erpnext/accounts/doctype/account/account_treeview.js
@@ -6,7 +6,8 @@
 		fieldname: "comp",
 		fieldtype:"Select",
 		options: $.map(locals[':Company'], function(c) { return c.name; }).sort(),
-		label: __("Company")
+		label: __("Company"),
+		default: frappe.defaults.get_default('company') ? frappe.defaults.get_default('company'): ""
 	}],
 	root_label: "Accounts",
 	get_tree_nodes: 'erpnext.accounts.page.accounts_browser.accounts_browser.get_children',
@@ -24,14 +25,28 @@
 		{fieldtype:'Check', fieldname:'is_group', label:__('Is Group'),
 			description: __('Further accounts can be made under Groups, but entries can be made against non-Groups')},
 		{fieldtype:'Select', fieldname:'root_type', label:__('Root Type'),
-			options: ['Asset', 'Liability', 'Equity', 'Income', 'Expense'].join('\n'),
-		},
+			options: ['Asset', 'Liability', 'Equity', 'Income', 'Expense'].join('\n')},
 		{fieldtype:'Select', fieldname:'account_type', label:__('Account Type'),
 			options: ['', 'Bank', 'Cash', 'Warehouse', 'Tax', 'Chargeable'].join('\n'),
-			description: __("Optional. This setting will be used to filter in various transactions.") },
-		{fieldtype:'Float', fieldname:'tax_rate', label:__('Tax Rate')},
-		{fieldtype:'Link', fieldname:'warehouse', label:__('Warehouse'), options:"Warehouse"},
+			description: __("Optional. This setting will be used to filter in various transactions."),
+			depends_on: 'eval:doc.is_group==1'},
+		{fieldtype:'Float', fieldname:'tax_rate', label:__('Tax Rate'),
+			depends_on: 'eval:doc.is_group==1&&doc.account_type=="Tax"'},
+		{fieldtype:'Link', fieldname:'warehouse', label:__('Warehouse'), options:"Warehouse",
+			depends_on: 'eval:(doc.is_group==1&&doc.account_type=="Warehouse")'},
 		{fieldtype:'Link', fieldname:'account_currency', label:__('Currency'), options:"Currency",
 			description: __("Optional. Sets company's default currency, if not specified.")}
-	]
+	],
+	onrender: function(node) {
+		var dr_or_cr = node.data.balance < 0 ? "Cr" : "Dr";
+		if (node.data && node.data.balance!==undefined) {
+			$('<span class="balance-area pull-right text-muted small">'
+				+ (node.data.balance_in_account_currency ?
+					(format_currency(Math.abs(node.data.balance_in_account_currency),
+						node.data.account_currency) + " / ") : "")
+				+ format_currency(Math.abs(node.data.balance), node.data.company_currency)
+				+ " " + dr_or_cr
+				+ '</span>').insertBefore(node.$ul);
+		}
+	}
 }
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/cost_center/cost_center_treeview.js b/erpnext/accounts/doctype/cost_center/cost_center_treeview.js
index c3a222d..eddf048 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center_treeview.js
+++ b/erpnext/accounts/doctype/cost_center/cost_center_treeview.js
@@ -6,6 +6,7 @@
 		fieldtype:"Select",
 		options: $.map(locals[':Company'], function(c) { return c.name; }).sort(),
 		label: __("Company"),
+		default: frappe.defaults.get_default('company') ? frappe.defaults.get_default('company'): ""
 	}],
 	root_label: "Cost Centers",
 	get_tree_nodes: 'erpnext.accounts.page.accounts_browser.accounts_browser.get_children',
diff --git a/erpnext/patches/v7_0/create_warehouse_nestedset.py b/erpnext/patches/v7_0/create_warehouse_nestedset.py
index 01ae891..78cc399 100644
--- a/erpnext/patches/v7_0/create_warehouse_nestedset.py
+++ b/erpnext/patches/v7_0/create_warehouse_nestedset.py
@@ -2,17 +2,9 @@
 from frappe import _
 
 def execute():
-	if not frappe.db.exists("Warehouse", {"warehouse_name": _("Warehouses")}):
-		parent_warehouse = frappe.get_doc({
-			"doctype": "Warehouse",
-			"warehouse_name": _("Warehouses"),
-			"is_group": "Yes"
-		}).insert(ignore_permissions=True)
-		
-		for warehouse in frappe.db.sql_list("""select name from tabWarehouse
-			where name != %s order by name asc""", "Warehouses - SI"):
-			print warehouse
-			warehouse = frappe.get_doc("Warehouse", warehouse)
-			warehouse.is_group = "No"
-			warehouse.parent_warehouse = parent_warehouse.name
-			warehouse.save(ignore_permissions=True)
\ No newline at end of file
+	for warehouse in frappe.db.sql_list("""select name from tabWarehouse
+		order by company asc, name asc"""):
+		warehouse = frappe.get_doc("Warehouse", warehouse)
+		warehouse.is_group = "No"
+		warehouse.parent_warehouse = ""
+		warehouse.save(ignore_permissions=True)
\ No newline at end of file
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 7294834..c45c241 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -87,7 +87,7 @@
 				.format(self.country.lower()))(self)
 
 	def create_default_warehouses(self):
-		for wh_detail in [{"warehouse_name": _("Warehouses"), "is_group": "Yes"},
+		for wh_detail in [
 			{"warehouse_name": _("Stores"), "is_group": "No"},
 			{"warehouse_name": _("Work In Progress"), "is_group": "No"},
 			{"warehouse_name": _("Finished Goods"), "is_group": "No"}]:
@@ -101,8 +101,7 @@
 						"warehouse_name": wh_detail["warehouse_name"],
 						"is_group": wh_detail["is_group"],
 						"company": self.name,
-						"parent_warehouse": "" if wh_detail["is_group"] == "Yes" \
-							else "{0} - {1}".format(_("Warehouses"), self.abbr),
+						"parent_warehouse": "",
 						"create_account_under": stock_group
 					})
 					warehouse.flags.ignore_permissions = True
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index d28a3c4..1032fb0 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -165,3 +165,43 @@
 
 		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", existing_allow_negative_stock)
 		frappe.db.auto_commit_on_many_writes = 0
+
+@frappe.whitelist()
+def get_children():
+	from erpnext.stock.utils import get_stock_value_on
+	ctype = frappe.local.form_dict.get('ctype')
+	company = frappe.local.form_dict.get('comp')
+	
+	parent_field = 'parent_' + ctype.lower().replace(' ', '_')
+	parent = frappe.form_dict.get("parent") or ""
+	
+	if parent == "Warehouses":
+		parent = ""
+
+	warehouses = frappe.db.sql("""select name as value,
+		if(is_group='Yes', 1, 0) as expandable
+		from `tab{ctype}`
+		where docstatus < 2
+		and ifnull(`{parent_field}`,'') = %s and `company` = %s
+		order by name""".format(ctype=frappe.db.escape(ctype), parent_field=frappe.db.escape(parent_field)),
+		(parent, company), as_dict=1)
+	
+	# return warehouses
+	for wh in warehouses:
+		wh["balance"] = get_stock_value_on(warehouse=wh.value)
+	return warehouses
+		
+@frappe.whitelist()
+def add_node():
+	ctype = frappe.form_dict.get('ctype')
+	parent_field = 'parent_' + ctype.lower().replace(' ', '_')
+	name_field = ctype.lower().replace(' ', '_') + '_name'
+
+	doc = frappe.new_doc(ctype)
+	doc.update({
+		name_field: frappe.form_dict['name_field'],
+		parent_field: frappe.form_dict['parent'],
+		"is_group": frappe.form_dict['is_group']
+	})
+
+	doc.save()
diff --git a/erpnext/stock/doctype/warehouse/warehouse_treeview.js b/erpnext/stock/doctype/warehouse/warehouse_treeview.js
index b0be3ec..d23a536 100644
--- a/erpnext/stock/doctype/warehouse/warehouse_treeview.js
+++ b/erpnext/stock/doctype/warehouse/warehouse_treeview.js
@@ -1,4 +1,20 @@
 frappe.treeview_settings['Warehouse'] = {
-	get_tree_nodes: "erpnext.selling.page.sales_browser.sales_browser.get_children",
-	add_tree_node: "erpnext.selling.page.sales_browser.sales_browser.add_node"
+	get_tree_nodes: "erpnext.stock.doctype.warehouse.warehouse.get_children",
+	add_tree_node: "erpnext.stock.doctype.warehouse.warehouse.add_node",
+	get_tree_root: false,
+	root_label: "Warehouses",
+	filters: [{
+		fieldname: "comp",
+		fieldtype:"Select",
+		options: $.map(locals[':Company'], function(c) { return c.name; }).sort(),
+		label: __("Company"),
+		default: frappe.defaults.get_default('company') ? frappe.defaults.get_default('company'): ""
+	}],
+	onrender: function(node) {
+		if (node.data && node.data.balance!==undefined) {
+			$('<span class="balance-area pull-right text-muted small">'
+			+ format_currency(Math.abs(node.data.balance), node.data.company_currency)
+			+ '</span>').insertBefore(node.$ul);
+		}
+	}
 }
\ No newline at end of file
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 3f9de86..af7dc58 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -15,24 +15,34 @@
 	values, condition = [posting_date], ""
 
 	if warehouse:
-		values.append(warehouse)
-		condition += " AND warehouse = %s"
+		
+		wh = frappe.get_doc("Warehouse", warehouse)
+		
+		if wh.is_group == "Yes":
+			values.extend([wh.lft, wh.rgt])
+			condition += "and exists (\
+				select name from `tabWarehouse` wh where wh.name = sle.warehouse\
+				and wh.lft >= %s and wh.rgt <= %s)"
+		
+		else:
+			values.append(warehouse)
+			condition += " AND warehouse = %s"
 
 	if item_code:
 		values.append(item_code)
 		condition.append(" AND item_code = %s")
 
 	stock_ledger_entries = frappe.db.sql("""
-		SELECT item_code, stock_value
-		FROM `tabStock Ledger Entry`
+		SELECT item_code, stock_value, name, warehouse
+		FROM `tabStock Ledger Entry` sle
 		WHERE posting_date <= %s {0}
 		ORDER BY timestamp(posting_date, posting_time) DESC, name DESC
 	""".format(condition), values, as_dict=1)
 
 	sle_map = {}
 	for sle in stock_ledger_entries:
-		sle_map.setdefault(sle.item_code, flt(sle.stock_value))
-
+		sle_map[sle.item_code] = sle_map.get(sle.item_code, 0.0) + flt(sle.stock_value)
+		
 	return sum(sle_map.values())
 
 def get_stock_balance(item_code, warehouse, posting_date=None, posting_time=None, with_valuation_rate=False):
