diff --git a/src/org/openbravo/erpCommon/info/BusinessPartner_data.xsql b/src/org/openbravo/erpCommon/info/BusinessPartner_data.xsql
--- a/src/org/openbravo/erpCommon/info/BusinessPartner_data.xsql
+++ b/src/org/openbravo/erpCommon/info/BusinessPartner_data.xsql
@@ -28,24 +28,21 @@
       <SqlMethodComment></SqlMethodComment>
       <Sql> <![CDATA[
       		SELECT * FROM ( SELECT '0' AS RN1, A.* FROM (      				   
-					SELECT DISTINCT bp.C_BPartner_ID, bp.value, bp.name as name, 
+					SELECT bp.C_BPartner_ID, bp.value, bp.name as name, 
 					        bp.name as name_hidden, 
 					        (bp.SO_CreditLimit-bp.SO_CreditUsed) AS SO_CreditAvailable, bp.SO_CreditUsed, 
-					        COALESCE(c.name,u.name) AS Contact, COALESCE(c.ad_user_id,u.ad_user_id) as C_BPartner_Contact_ID, bpl.Phone, l.Postal AS PC, 
+					        u.name AS Contact, u.ad_user_id as C_BPartner_Contact_ID, bpl.Phone, l.Postal AS PC, 
 					        bpl.c_bpartner_location_id as C_BPartner_Location_ID,
 					        l.City, bp.ActualLifetimeValue AS Income, 
-					        bp.C_BPartner_ID || '@_##_@' || COALESCE(TO_CHAR(c.ad_user_id), TO_CHAR(u.ad_user_id), '') || '@_##_@' || COALESCE(TO_CHAR(bpl.c_bpartner_location_id),'') || '@_##_@' || bp.name AS rowKey  
+					        bp.C_BPartner_ID || '@_##_@' || TO_CHAR(u.ad_user_id) || '@_##_@' || COALESCE(TO_CHAR(bpl.c_bpartner_location_id),'') || '@_##_@' || bp.name AS rowKey  
 					        FROM C_BPARTNER bp left join C_BPARTNER_LOCATION bpl on bp.c_bpartner_id = bpl.c_bpartner_id
 					                                                             and bpl.IsActive = 'Y'
-					                           left join AD_USER c on bpl.c_bpartner_location_id = c.C_BPartner_Location_ID
-					                                                             and c.IsActive ='Y'
 					                           left join C_LOCATION l on bpl.c_location_id=l.C_Location_ID 
 					                           left join  C_REGION r on l.c_region_id = r.c_region_id 
-					                           left join
-					                (SELECT c_bpartner_id, ad_user_id, name from ad_user where c_bpartner_id is not null 
-					                and c_bpartner_location_id is null and isactive='Y') u on bp.c_bpartner_id = u.c_bpartner_id
+					                           left join ad_user u on bp.c_bpartner_id = u.c_bpartner_id
 					        WHERE bp.AD_Client_ID IN ('1') 
 					        AND bp.AD_Org_ID IN ('1') 
+					        and (u.c_bpartner_location_id is null or u.c_bpartner_location_id = bpl.C_BPartner_Location_ID) and u.isactive='Y'
 					        AND bp.IsSummary='N' 
 					        AND bp.IsActive='Y'
 					        ORDER BY bp.value
@@ -58,7 +55,7 @@
         <Parameter name="adUserOrg" type="replace" optional="true" after="bp.AD_Org_ID IN (" text="'1'"/>
         <Parameter name="key" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(bp.Value) LIKE UPPER(?) ]]></Parameter>
         <Parameter name="name" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND C_IGNORE_ACCENT(bp.Name) LIKE C_IGNORE_ACCENT(?) ]]></Parameter>
-        <Parameter name="contact" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(COALESCE(c.name,u.name)) LIKE UPPER(?) ]]></Parameter>
+        <Parameter name="contact" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(u.name) LIKE UPPER(?) ]]></Parameter>
         <Parameter name="codigoPostal" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(l.Postal) LIKE UPPER(?) ]]></Parameter>
         <Parameter name="provincia" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(r.NAME) LIKE UPPER(?)]]></Parameter>
         <Parameter name="clients" optional="true" type="none" after="AND bp.IsActive='Y'"><![CDATA[AND ISCUSTOMER = 'Y' ]]></Parameter>
@@ -77,15 +74,12 @@
 	        FROM ( SELECT '0' AS rn1, B.* FROM 
 	      (SELECT 1 FROM C_BPARTNER bp left join C_BPARTNER_LOCATION bpl on bp.c_bpartner_id = bpl.c_bpartner_id
 	                                                             and bpl.IsActive = 'Y'
-	                           left join AD_USER c on bpl.c_bpartner_location_id = c.C_BPartner_Location_ID
-	                                                             and c.IsActive ='Y'
 	                           left join C_LOCATION l on bpl.c_location_id=l.C_Location_ID 
 	                           left join  C_REGION r on l.c_region_id = r.c_region_id 
-	                           left join
-	                (SELECT c_bpartner_id, ad_user_id, name from ad_user where c_bpartner_id is not null 
-	                and c_bpartner_location_id is null and isactive='Y') u on bp.c_bpartner_id = u.c_bpartner_id
+	                           left join ad_user  u on bp.c_bpartner_id = u.c_bpartner_id
 	        WHERE bp.AD_Client_ID IN ('1') 
 	        AND bp.AD_Org_ID IN ('1') 
+			and (u.c_bpartner_location_id is null or u.c_bpartner_location_id = bpl.C_BPartner_Location_ID) and u.isactive='Y'
 	        AND bp.IsSummary='N' 
 	        AND bp.IsActive='Y'
 	        AND 1=1
@@ -98,7 +92,7 @@
         <Parameter name="adUserOrg" type="replace" optional="true" after="bp.AD_Org_ID IN (" text="'1'"/>
         <Parameter name="key" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(bp.Value) LIKE UPPER(?) ]]></Parameter>
         <Parameter name="name" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND C_IGNORE_ACCENT(bp.Name) LIKE C_IGNORE_ACCENT(?) ]]></Parameter>
-        <Parameter name="contact" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(COALESCE(c.name,u.name)) LIKE UPPER(?) ]]></Parameter>
+        <Parameter name="contact" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(u.name) LIKE UPPER(?) ]]></Parameter>
         <Parameter name="codigoPostal" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(l.Postal) LIKE UPPER(?) ]]></Parameter>
         <Parameter name="provincia" ignoreValue="%" optional="true" after="AND bp.IsActive='Y'"><![CDATA[AND UPPER(r.NAME) LIKE UPPER(?)]]></Parameter>
         <Parameter name="clients" optional="true" type="none" after="AND bp.IsActive='Y'"><![CDATA[AND ISCUSTOMER = 'Y' ]]></Parameter>
@@ -116,19 +110,16 @@
       <SqlMethodComment></SqlMethodComment>
       <Sql> <![CDATA[
       SELECT A.* FROM (                      
-        SELECT DISTINCT bp.C_BPartner_ID, bp.value, bp.name as name, COALESCE(c.ad_user_id,u.ad_user_id) as C_BPartner_Contact_ID,
+        SELECT bp.C_BPartner_ID, bp.value, bp.name as name, u.ad_user_id as C_BPartner_Contact_ID,
         bpl.c_bpartner_location_id as C_BPartner_Location_ID
         FROM C_BPARTNER bp left join C_BPARTNER_LOCATION bpl on bp.c_bpartner_id = bpl.c_bpartner_id
                                                              and bpl.IsActive = 'Y'
-                           left join AD_USER c on bpl.c_bpartner_location_id = c.C_BPartner_Location_ID
-                                               and c.IsActive ='Y'
                            left join C_LOCATION l on bpl.c_location_id=l.C_Location_ID
                            left join  C_REGION r on  l.c_region_id = r.c_region_id
-                           left join
-                (SELECT c_bpartner_id, ad_user_id, name from ad_user where c_bpartner_id is not null 
-                and c_bpartner_location_id is null and isactive='Y') u on bp.c_bpartner_id = u.c_bpartner_id 
+	                       left join ad_user  u on bp.c_bpartner_id = u.c_bpartner_id
         WHERE  bp.AD_Client_ID IN ('1') 
         AND bp.AD_Org_ID IN ('1') 
+			and (u.c_bpartner_location_id is null or u.c_bpartner_location_id = bpl.C_BPartner_Location_ID) and u.isactive='Y'
         AND bp.IsSummary='N' 
         AND bp.IsActive='Y'
         AND UPPER(bp.VALUE) LIKE UPPER(?)
