diff --git a/public/js/utils.js b/public/js/utils.js
index b84e293..6cd2c19 100644
--- a/public/js/utils.js
+++ b/public/js/utils.js
@@ -16,7 +16,7 @@
 
 wn.provide('erpnext.utils');
 
-// profile related get_query
+// searches for enabled profiles
 erpnext.utils.profile_query = function() {
 	return "select name, concat_ws(' ', first_name, middle_name, last_name) \
 		from `tabProfile` where ifnull(enabled, 0)=1 and docstatus < 2 and \
@@ -25,10 +25,18 @@
 		order by name asc limit 50";
 };
 
-// employee related get query
+// searches for active employees
 erpnext.utils.employee_query = function() {
 	return "select name, employee_name from `tabEmployee` \
 		where status = 'Active' and docstatus < 2 and \
-		(employee_name like \"%%%s\" or %(key)s like \"%s\") \
+		(%(key)s like \"%s\" or employee_name like \"%%%s\") \
 		order by name asc limit 50";
-};
\ No newline at end of file
+};
+
+// searches for leads which are not converted
+erpnext.utils.lead_query = function() {
+	return "select name, lead_name, company_name from `tabLead` \
+		where docstatus < 2 and ifnull(status, '') != 'Converted' and \
+		(%(key)s like \"%s\" or lead_name like \"%%%s\" or company_name like \"%%%s\") \
+		order by lead_name asc limit 50";
+};
diff --git a/selling/doctype/customer/customer.js b/selling/doctype/customer/customer.js
index 82d001f..028ad6e 100644
--- a/selling/doctype/customer/customer.js
+++ b/selling/doctype/customer/customer.js
@@ -117,12 +117,7 @@
 }
 
 
-// -----
-// lead
-// -----
-cur_frm.fields_dict['lead_name'].get_query = function(doc,dt,dn){
-	return 'SELECT `tabLead`.`name` FROM `tabLead` WHERE `tabLead`.`status`!="Converted" AND `tabLead`.%(key)s LIKE "%s" ORDER BY `tabLead`.`name` ASC LIMIT 50';	
-}
+cur_frm.fields_dict.lead_name.get_query = erpnext.utils.lead_query;
 
 
 // Transaction History
diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js
index 0d3d431..4070f5e 100644
--- a/selling/doctype/opportunity/opportunity.js
+++ b/selling/doctype/opportunity/opportunity.js
@@ -208,4 +208,6 @@
 
 //get query select Territory
 cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	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
+	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';}
+	
+cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query;
\ No newline at end of file
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index 157ad7e..e629975 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -148,10 +148,7 @@
 	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-//lead
-cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){
-	return 'SELECT `tabLead`.name, `tabLead`.lead_name FROM `tabLead` WHERE `tabLead`.%(key)s LIKE "%s"	ORDER BY	`tabLead`.`name` ASC LIMIT 50';
-}
+cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query;
 
 cur_frm.cscript.lead = function(doc, cdt, cdn) {
 	if(doc.lead) {
diff --git a/support/doctype/communication/communication.js b/support/doctype/communication/communication.js
index 6f9147e..76161ab 100644
--- a/support/doctype/communication/communication.js
+++ b/support/doctype/communication/communication.js
@@ -6,6 +6,14 @@
 			concat_ws(' ', first_name, middle_name, last_name) like \"%%%s\") \
 			limit 50";
 	};
+	
+	cur_frm.fields_dict.lead.get_query = function() {
+		return "select name, lead_name from `tabLead` \
+			where docstatus < 2 and \
+			(%(key)s like \"%s\" or lead_name like \"%%%s\" or \
+			company_name like \"%%%s\") \
+			order by lead_name asc limit 50";
+	};
 }
 
 cur_frm.cscript.refresh = function(doc, dt, dn) {
