diff --git a/erpnext/buying/doctype/supplier/supplier.js b/erpnext/buying/doctype/supplier/supplier.js
index 8291ed5..615ffc7 100644
--- a/erpnext/buying/doctype/supplier/supplier.js
+++ b/erpnext/buying/doctype/supplier/supplier.js
@@ -37,14 +37,10 @@
     unhide_field('naming_series'); 
     
   if(doc.__islocal){
-    	hide_field(['Address HTML','Contact HTML']); 
-  		//if(doc.country) cur_frm.cscript.get_states(doc,dt,dn);  	
-		// set message
-		//cur_frm.cscript.set_cl_msg(doc);
-		//cur_frm.cscript.set_hl_msg(doc);
-  }
+    	hide_field(['address_html','contact_html']); 
+   }
   else{
-	  	unhide_field(['Address HTML','Contact HTML']);
+	  	unhide_field(['address_html','contact_html']);
 		// make lists
 		cur_frm.cscript.make_address(doc,dt,dn);
 		cur_frm.cscript.make_contact(doc,dt,dn);
@@ -55,7 +51,7 @@
 cur_frm.cscript.make_address = function() {
 	if(!cur_frm.address_list) {
 		cur_frm.address_list = new wn.ui.Listing({
-			parent: cur_frm.fields_dict['Address HTML'].wrapper,
+			parent: cur_frm.fields_dict['address_html'].wrapper,
 			page_length: 2,
 			new_doctype: "Address",
 			get_query: function() {
@@ -88,7 +84,7 @@
 cur_frm.cscript.make_contact = function() {
 	if(!cur_frm.contact_list) {
 		cur_frm.contact_list = new wn.ui.Listing({
-			parent: cur_frm.fields_dict['Contact HTML'].wrapper,
+			parent: cur_frm.fields_dict['contact_html'].wrapper,
 			page_length: 2,
 			new_doctype: "Contact",
 			get_query: function() {
diff --git a/erpnext/selling/doctype/customer/customer.js b/erpnext/selling/doctype/customer/customer.js
index 5b229dc..78743e7 100644
--- a/erpnext/selling/doctype/customer/customer.js
+++ b/erpnext/selling/doctype/customer/customer.js
@@ -53,11 +53,11 @@
 		unhide_field('naming_series');
 
 	if(doc.__islocal){		
-		hide_field(['Address HTML','Contact HTML']);
+		hide_field(['address_html','contact_html']);
 		//cur_frm.cscript.set_hl_msg(doc);
  		//cur_frm.cscript.set_sl_msg(doc);
 	}else{
-		unhide_field(['Address HTML','Contact HTML']);
+		unhide_field(['address_html','contact_html']);
 		// make lists
 		cur_frm.cscript.make_address(doc,dt,dn);
 		cur_frm.cscript.make_contact(doc,dt,dn);
@@ -69,7 +69,7 @@
 cur_frm.cscript.make_address = function() {
 	if(!cur_frm.address_list) {
 		cur_frm.address_list = new wn.ui.Listing({
-			parent: cur_frm.fields_dict['Address HTML'].wrapper,
+			parent: cur_frm.fields_dict['address_html'].wrapper,
 			page_length: 2,
 			new_doctype: "Address",
 			get_query: function() {
@@ -102,7 +102,7 @@
 cur_frm.cscript.make_contact = function() {
 	if(!cur_frm.contact_list) {
 		cur_frm.contact_list = new wn.ui.Listing({
-			parent: cur_frm.fields_dict['Contact HTML'].wrapper,
+			parent: cur_frm.fields_dict['contact_html'].wrapper,
 			page_length: 2,
 			new_doctype: "Contact",
 			get_query: function() {
diff --git a/erpnext/setup/doctype/contact_control/contact_control.js b/erpnext/setup/doctype/contact_control/contact_control.js
index f58e75d..51fc5cf 100755
--- a/erpnext/setup/doctype/contact_control/contact_control.js
+++ b/erpnext/setup/doctype/contact_control/contact_control.js
@@ -5,8 +5,8 @@
 // make history list body
 // -----------------------
 cur_frm.cscript.make_hl_body = function(){
-	cur_frm.fields_dict['History HTML'].wrapper.innerHTML = '';
-	cur_frm.history_html = $a(cur_frm.fields_dict['History HTML'].wrapper,'div');
+	cur_frm.fields_dict['history_html'].wrapper.innerHTML = '';
+	cur_frm.history_html = $a(cur_frm.fields_dict['history_html'].wrapper,'div');
 }
 
 
@@ -120,4 +120,4 @@
 	cur_frm.fields_dict['territory'].get_query = function(doc,dt,dn) {
 		return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
 	}
-}
\ No newline at end of file
+}
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.js b/erpnext/setup/doctype/sales_partner/sales_partner.js
index 77da493..92c9966 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.js
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.js
@@ -32,12 +32,12 @@
 cur_frm.cscript.refresh = function(doc,dt,dn){  
   
 	if(doc.__islocal){
-		hide_field(['Address HTML','Contact HTML']);
+		hide_field(['address_html', 'contact_html']);
 		//cur_frm.cscript.set_cl_msg(doc);
 		//cur_frm.cscript.set_hl_msg(doc);		
 	}
 	else{
-		unhide_field(['Address HTML','Contact HTML']);
+		unhide_field(['address_html', 'contact_html']);
 		// make lists
 		cur_frm.cscript.make_address(doc,dt,dn);
 		cur_frm.cscript.make_contact(doc,dt,dn);
@@ -49,7 +49,7 @@
 cur_frm.cscript.make_address = function() {
 	if(!cur_frm.address_list) {
 		cur_frm.address_list = new wn.ui.Listing({
-			parent: cur_frm.fields_dict['Address HTML'].wrapper,
+			parent: cur_frm.fields_dict['address_html'].wrapper,
 			page_length: 2,
 			new_doctype: "Address",			
 			get_query: function() {
@@ -73,7 +73,7 @@
 cur_frm.cscript.make_contact = function() {
 	if(!cur_frm.contact_list) {
 		cur_frm.contact_list = new wn.ui.Listing({
-			parent: cur_frm.fields_dict['Contact HTML'].wrapper,
+			parent: cur_frm.fields_dict['contact_html'].wrapper,
 			page_length: 2,
 			new_doctype: "Contact",
 			get_query: function() {
