diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index 403c1ce..c60713a 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -146,7 +146,7 @@
 					label: __("Rename"),
 					click: function(node) {
 						frappe.model.rename_doc(me.ctype, node.label, function(new_name) {
-							node.reload();
+							node.reload_parent();
 						});
 					},
 					btnClass: "hidden-xs"
@@ -166,8 +166,8 @@
 				var dr_or_cr = node.data.balance < 0 ? "Cr" : "Dr";
 				if (me.ctype == 'Account' && 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.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
@@ -219,7 +219,7 @@
 					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"},
-				{fieldtype:'Link', fieldname:'account_currency', label:__('Currency'), options:"Currency", 
+				{fieldtype:'Link', fieldname:'account_currency', label:__('Currency'), options:"Currency",
 					description: __("Optional. Sets company's default currency, if not specified.")}
 			]
 		})
@@ -243,7 +243,7 @@
 			$(fd.tax_rate.wrapper).toggle(fd.account_type.get_value()==='Tax');
 			$(fd.warehouse.wrapper).toggle(fd.account_type.get_value()==='Warehouse');
 		})
-		
+
 		// root type if root
 		$(fd.root_type.wrapper).toggle(node.root);
 
@@ -261,7 +261,7 @@
 			var node = me.tree.get_selected_node();
 			v.parent_account = node.label;
 			v.company = me.company;
-			
+
 			if(node.root) {
 				v.is_root = true;
 				v.parent_account = null;
@@ -278,7 +278,7 @@
 					if(node.expanded) {
 						node.toggle_node();
 					}
-					node.reload();
+					node.load();
 				}
 			});
 		});
@@ -324,7 +324,7 @@
 					if(node.expanded) {
 						node.toggle_node();
 					}
-					node.reload();
+					node.load();
 				}
 			});
 		});
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.py b/erpnext/accounts/page/accounts_browser/accounts_browser.py
index 891a05d..d96b213 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.py
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.py
@@ -18,29 +18,31 @@
 def get_children():
 	args = frappe.local.form_dict
 	ctype, company = args['ctype'], args['comp']
+	fieldname = frappe.db.escape(ctype.lower().replace(' ','_'))
+	doctype = frappe.db.escape(ctype)
 
 	# root
 	if args['parent'] in ("Accounts", "Cost Centers"):
-		select_cond = ", root_type, report_type, account_currency" if ctype=="Account" else ""
+		fields = ", root_type, report_type, account_currency" if ctype=="Account" else ""
 		acc = frappe.db.sql(""" select
-			name as value, is_group as expandable %s
-			from `tab%s`
-			where ifnull(`parent_%s`,'') = ''
+			name as value, is_group as expandable {fields}
+			from `tab{doctype}`
+			where ifnull(`parent_{fieldname}`,'') = ''
 			and `company` = %s	and docstatus<2
-			order by name""" % (select_cond, frappe.db.escape(ctype), frappe.db.escape(ctype.lower().replace(' ','_')), '%s'),
+			order by name""".format(fields=fields, fieldname = fieldname, doctype=doctype),
 				company, as_dict=1)
 
 		if args["parent"]=="Accounts":
 			sort_root_accounts(acc)
 	else:
 		# other
-		select_cond = ", account_currency" if ctype=="Account" else ""
+		fields = ", account_currency" if ctype=="Account" else ""
 		acc = frappe.db.sql("""select
-			name as value, is_group as expandable %s
-	 		from `tab%s`
-			where ifnull(`parent_%s`,'') = %s
+			name as value, is_group as expandable, parent_{fieldname} as parent {fields}
+	 		from `tab{doctype}`
+			where ifnull(`parent_{fieldname}`,'') = %s
 			and docstatus<2
-			order by name""" % (select_cond, frappe.db.escape(ctype), frappe.db.escape(ctype.lower().replace(' ','_')), '%s'),
+			order by name""".format(fields=fields, fieldname=fieldname, doctype=doctype),
 				args['parent'], as_dict=1)
 
 	if ctype == 'Account':
@@ -48,7 +50,7 @@
 		for each in acc:
 			each["company_currency"] = company_currency
 			each["balance"] = flt(get_balance_on(each.get("value"), in_account_currency=False))
-			
+
 			if each.account_currency != company_currency:
 				each["balance_in_account_currency"] = flt(get_balance_on(each.get("value")))
 
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index a99fe72..55fa57a 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -155,7 +155,7 @@
 						if(node.expanded) {
 							node.toggle_node();
 						}
-						node.reload();
+						node.reload_parent();
 					}
 				}
 			});
