diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 9520928..cc86159 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -95,7 +95,7 @@
 			if self.check_gle_exists():
 				throw(_("Account with existing transaction cannot be converted to ledger"))
 			elif self.is_group:
-				if self.account_type:
+				if self.account_type and not self.flags.exclude_account_type_check:
 					throw(_("Cannot covert to Group because Account Type is selected."))
 			elif self.check_if_child_exists():
 				throw(_("Account with child nodes cannot be set as ledger"))
@@ -139,7 +139,7 @@
 	def convert_ledger_to_group(self):
 		if self.check_gle_exists():
 			throw(_("Account with existing transaction can not be converted to group."))
-		elif self.account_type:
+		elif self.account_type and not self.flags.exclude_account_type_check:
 			throw(_("Cannot covert to Group because Account Type is selected."))
 		else:
 			self.is_group = 1
diff --git a/erpnext/patches/v7_0/create_warehouse_nestedset.py b/erpnext/patches/v7_0/create_warehouse_nestedset.py
index 80dbf2e..aaccfb9 100644
--- a/erpnext/patches/v7_0/create_warehouse_nestedset.py
+++ b/erpnext/patches/v7_0/create_warehouse_nestedset.py
@@ -15,7 +15,7 @@
 
 def set_parent_to_warehouses(warehouse, company):
 	warehouse = frappe.get_doc("Warehouse", warehouse.name)
-	warehouse.is_group = "Yes" if warehouse.is_group == "Yes" else "No"
+	warehouse.is_group = warehouse.is_group
 	
 	if not warehouse.parent_warehouse and warehouse.name != "{0} - {1}".format(_("All Warehouses"), company.abbr):
 		warehouse.parent_warehouse = "{0} - {1}".format(_("All Warehouses"), company.abbr)
@@ -42,7 +42,7 @@
 	frappe.get_doc({
 		"doctype": "Warehouse",
 		"warehouse_name": _("All Warehouses"),
-		"is_group": "Yes",
+		"is_group": 1,
 		"company": company.name,
 		"parent_warehouse": ""
 	}).insert(ignore_permissions=True)
\ No newline at end of file
diff --git a/erpnext/patches/v7_0/set_is_group_for_warehouse.py b/erpnext/patches/v7_0/set_is_group_for_warehouse.py
index d74b97b..d3aca21 100644
--- a/erpnext/patches/v7_0/set_is_group_for_warehouse.py
+++ b/erpnext/patches/v7_0/set_is_group_for_warehouse.py
@@ -2,5 +2,5 @@
 
 def execute():
 	frappe.reload_doc("stock", "doctype", "warehouse")
-	
-	frappe.db.sql("""update tabWarehouse set is_group = if (is_group="Yes", 1, 0)""")
\ No newline at end of file
+	frappe.db.sql("""update tabWarehouse
+		set is_group = if ((ifnull(is_group, "No") = "Yes" or ifnull(is_group, 0) = 1), 1, 0)""")
\ No newline at end of file
diff --git a/erpnext/public/js/queries.js b/erpnext/public/js/queries.js
index acc0409..c1f09a5 100644
--- a/erpnext/public/js/queries.js
+++ b/erpnext/public/js/queries.js
@@ -73,7 +73,7 @@
 		return {
 			filters: [
 				["Warehouse", "company", "in", ["", cstr(doc.company)]],
-				["Warehouse", "is_group", "=", "No"]
+				["Warehouse", "is_group", "=",0]
 				
 			]
 		}
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 7d88297..6b66324 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -88,10 +88,10 @@
 
 	def create_default_warehouses(self):
 		for wh_detail in [
-			{"warehouse_name": _("All Warehouses"), "is_group": "Yes"},
-			{"warehouse_name": _("Stores"), "is_group": "No"},
-			{"warehouse_name": _("Work In Progress"), "is_group": "No"},
-			{"warehouse_name": _("Finished Goods"), "is_group": "No"}]:
+			{"warehouse_name": _("All Warehouses"), "is_group": 1},
+			{"warehouse_name": _("Stores"), "is_group": 0},
+			{"warehouse_name": _("Work In Progress"), "is_group": 0},
+			{"warehouse_name": _("Finished Goods"), "is_group": 0}]:
 			
 			if not frappe.db.exists("Warehouse", "{0} - {1}".format(wh_detail["warehouse_name"], self.abbr)):
 				stock_group = frappe.db.get_value("Account", {"account_type": "Stock",
@@ -103,7 +103,7 @@
 						"is_group": wh_detail["is_group"],
 						"company": self.name,
 						"parent_warehouse": "{0} - {1}".format(_("All Warehouses"), self.abbr) \
-							if wh_detail["is_group"] == "No" else "",
+							if not wh_detail["is_group"] else "",
 						"create_account_under": stock_group
 					})
 					warehouse.flags.ignore_permissions = True
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index f35fa58..5bb0061 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -163,13 +163,13 @@
 		
 		frm.fields_dict['default_warehouse'].get_query = function(doc) {
 			return {
-				filters: { "is_group": "No" }
+				filters: { "is_group": 0 }
 			}
 		}
 		
 		frm.fields_dict.reorder_levels.grid.get_field("warehouse_group").get_query = function(doc, cdt, cdn) {
 			return {
-				filters: { "is_group": "Yes" }
+				filters: { "is_group": 1 }
 			}
 		}
 		
@@ -177,7 +177,7 @@
 			var d = locals[cdt][cdn];
 			return {
 				filters: {
-					"is_group": "No",
+					"is_group": 0,
 					"parent_warehouse": d.warehouse_group
 				}
 			}
diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
index 9cc27b7..f9629a1 100644
--- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
@@ -117,7 +117,7 @@
 	frappe.db.set_value("Item", item_code, "valuation_method", valuation_method)
 
 	for warehouse in frappe.get_all("Warehouse", filters={"company": "_Test Company"}, fields=["name", "is_group"]):
-		if warehouse.is_group == "No":
+		if not warehouse.is_group:
 			update_entries_after({
 				"item_code": item_code,
 				"warehouse": warehouse.name
diff --git a/erpnext/stock/doctype/warehouse/test_records.json b/erpnext/stock/doctype/warehouse/test_records.json
index c1dad5c..4dd9f6b 100644
--- a/erpnext/stock/doctype/warehouse/test_records.json
+++ b/erpnext/stock/doctype/warehouse/test_records.json
@@ -4,67 +4,67 @@
   "create_account_under": "Stock Assets - _TC",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company",
   "create_account_under": "Stock Assets - _TC",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company",
   "create_account_under": "Fixed Assets - _TC",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse 1",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company",
   "create_account_under": "Fixed Assets - _TC",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse 2",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company",
   "create_account_under": "Stock Assets - _TC",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Rejected Warehouse",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company 1",
   "create_account_under": "Stock Assets - _TC1",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse 2",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse No Account",
-  "is_group": "No"
+  "is_group": 0
  },
  {
   "company": "_Test Company",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse Group",
-  "is_group": "Yes"
+  "is_group": 1
  },
  {
   "company": "_Test Company",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse Group-C1",
-  "is_group": "No",
+  "is_group": 0,
   "parent_warehouse": "_Test Warehouse Group - _TC"
  },
  {
   "company": "_Test Company",
   "doctype": "Warehouse",
   "warehouse_name": "_Test Warehouse Group-C2",
-  "is_group": "No",
+  "is_group": 0,
   "parent_warehouse": "_Test Warehouse Group - _TC"
  }
 ]
diff --git a/erpnext/stock/doctype/warehouse/test_warehouse.py b/erpnext/stock/doctype/warehouse/test_warehouse.py
index b6eaa13..2232584 100644
--- a/erpnext/stock/doctype/warehouse/test_warehouse.py
+++ b/erpnext/stock/doctype/warehouse/test_warehouse.py
@@ -10,7 +10,7 @@
 class TestWarehouse(unittest.TestCase):
 	def test_parent_warehouse(self):
 		parent_warehouse = frappe.get_doc("Warehouse", "_Test Warehouse Group - _TC")
-		self.assertEquals(parent_warehouse.is_group, "Yes")
+		self.assertEquals(parent_warehouse.is_group, 1)
 		
 	def test_warehouse_hierarchy(self):
 		p_warehouse = frappe.get_doc("Warehouse", "_Test Warehouse Group - _TC")
@@ -20,6 +20,6 @@
 		
 		for child_warehouse in child_warehouses:
 			self.assertEquals(p_warehouse.name, child_warehouse.parent_warehouse)
-			self.assertEquals(child_warehouse.is_group, "No")
+			self.assertEquals(child_warehouse.is_group, 0)
 		
 		
diff --git a/erpnext/stock/doctype/warehouse/warehouse.js b/erpnext/stock/doctype/warehouse/warehouse.js
index 5983014..8b1b679 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.js
+++ b/erpnext/stock/doctype/warehouse/warehouse.js
@@ -27,6 +27,8 @@
 			frm.add_custom_button(__('Non-Group to Group'),
 				function() { convert_to_group_or_ledger(frm); }, 'icon-retweet', 'btn-default')
 		}
+		
+		cur_frm.toggle_enable(['is_group', 'company'], false);
 
 		frm.fields_dict['parent_warehouse'].get_query = function(doc) {
 			return {
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index 0ceaeda..3b50f30 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -50,7 +50,7 @@
 
 	def create_account_head(self):
 		if cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
-			if not self.get_account(self.name):
+			if not self.get_account():
 				if self.get("__islocal") or not frappe.db.get_value(
 						"Stock Ledger Entry", {"warehouse": self.name}):
 
@@ -168,7 +168,7 @@
 
 	def get_account(self, warehouse=None):
 		filters = {
-			"account_type": "Warehouse",
+			"account_type": "Stock",
 			"company": self.company,
 			"is_group": self.is_group
 		}
@@ -213,7 +213,9 @@
 		else:
 			account_name = self.get_account()
 			if account_name:
-				frappe.get_doc("Account", account_name).convert_group_to_ledger()
+				doc = frappe.get_doc("Account", account_name)
+				doc.warehouse = self.name
+				doc.convert_group_to_ledger()
 			
 			self.is_group = 0
 			self.save()
@@ -225,8 +227,10 @@
 		else:
 			account_name = self.get_account(self.name)
 			if account_name:
-				frappe.get_doc("Account", account_name).convert_ledger_to_group()
-			
+				doc = frappe.get_doc("Account", account_name)
+				doc.flags.exclude_account_type_check = True
+				doc.convert_ledger_to_group()
+
 			self.is_group = 1
 			self.save()
 			return 1
diff --git a/erpnext/stock/doctype/warehouse/warehouse_tree.js b/erpnext/stock/doctype/warehouse/warehouse_tree.js
index 0361493..9069160 100644
--- a/erpnext/stock/doctype/warehouse/warehouse_tree.js
+++ b/erpnext/stock/doctype/warehouse/warehouse_tree.js
@@ -10,6 +10,12 @@
 		label: __("Company"),
 		default: frappe.defaults.get_default('company') ? frappe.defaults.get_default('company'): ""
 	}],
+	fields:[
+		{fieldtype:'Data', fieldname: 'name_field',
+			label:__('New Warehouse Name'), reqd:true},
+		{fieldtype:'Check', fieldname:'is_group', label:__('Group Node'),
+			description: __("Further nodes can be only created under 'Group' type nodes")}
+	],
 	onrender: function(node) {
 		if (node.data && node.data.balance!==undefined) {
 			$('<span class="balance-area pull-right text-muted small">'
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 51d82a6..6797f8e 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -18,7 +18,7 @@
 		
 		lft, rgt, is_group = frappe.db.get_value("Warehouse", warehouse, ["lft", "rgt", "is_group"])
 		
-		if is_group == "Yes":
+		if is_group:
 			values.extend([lft, rgt])
 			condition += "and exists (\
 				select name from `tabWarehouse` wh where wh.name = sle.warehouse\
@@ -189,6 +189,6 @@
 			InvalidWarehouseCompany)
 
 def is_group_warehouse(warehouse):
-	if frappe.db.get_value("Warehouse", warehouse, "is_group") == "Yes":
+	if frappe.db.get_value("Warehouse", warehouse, "is_group"):
 		frappe.throw(_("Group node warehouse is not allowed to select for transactions"))
 	
\ No newline at end of file
