diff --git a/web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js b/web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js
--- a/web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js
+++ b/web/org.openbravo.mobile.core/source/retail/component/ob-retail-searchproductcharacteristic.js
@@ -1452,6 +1452,7 @@
             productCharacteristicFilter = "",
             params = [],
             num, brandStr;
+        productCharacteristicFilter = "AND (EXISTS (SELECT 1 FROM m_product_ch_value pchvf, m_product pf WHERE  pchvf.m_product_id = pf.m_product_id AND ch.id = pchvf.m_characteristic_id  ";
         // brand filter
         if (me.model.get('brandFilter').length > 0) {
           num = 0;
@@ -1465,7 +1466,7 @@
               brandStr += "'" + me.model.get('brandFilter')[i].id + "'";
             }
           }
-          BChar_Filter = " and ( exists (select 1 from m_product_ch_value pc join m_product mp where pc.m_product_id = mp.m_product_id and ch.id = pc.m_characteristic_id and ( mp.brand in ( " + brandStr + " ) )) ) ";
+          productCharacteristicFilter += " and ( pf.brand in ( " + brandStr + " ) ) ";
 
         }
         // product name and category
@@ -1474,13 +1475,12 @@
             if (productFilterText !== "") {
               params.push("%" + productFilterText.getValue() + "%");
             }
-            productCharacteristicFilter = "AND (EXISTS (SELECT 1 FROM m_product_ch_value pchvf, m_product pf WHERE  pchvf.m_product_id = pf.m_product_id AND ch.id = pchvf.m_characteristic_id AND ";
             if ((productCategory === "__all__") || (productCategory === "'__all__'") || (productCategory === "") || (productCategory === "''")) {
-              productCharacteristicFilter += " (Upper(pf._filter) LIKE Upper(?)) ";
+              productCharacteristicFilter += " and (Upper(pf._filter) LIKE Upper(?)) ";
             } else if (productCategory === "OBPOS_bestsellercategory") {
-              productCharacteristicFilter += "pf.bestseller = 'true' AND ( Upper(pf._filter) LIKE Upper(?) ) ";
+              productCharacteristicFilter += " and pf.bestseller = 'true' AND ( Upper(pf._filter) LIKE Upper(?) ) ";
             } else {
-              productCharacteristicFilter += " (Upper(pf._filter) LIKE Upper(?)) AND(pf.m_product_category_id IN ( " + productCategory + " )) ";
+              productCharacteristicFilter += " and (Upper(pf._filter) LIKE Upper(?)) AND(pf.m_product_category_id IN ( " + productCategory + " )) ";
             }
           }
         }
@@ -1504,12 +1504,10 @@
               }
 
             }
-            productCharacteristicFilter += "AND ( EXISTS (SELECT 1 FROM   m_product_ch_value ppchv WHERE  ppchv.m_product_id = pchvf.m_product_id AND ( ppchv.m_ch_value_id IN (" + characteristicsValuesStr + ") ))  ) ";
+            productCharacteristicFilter += " AND ( EXISTS (SELECT 1 FROM   m_product_ch_value ppchv WHERE  ppchv.m_product_id = pchvf.m_product_id AND ( ppchv.m_ch_value_id IN (" + characteristicsValuesStr + ") ))  ) ";
           }
         }
-        if (productFilterText !== undefined && productCategory !== undefined) {
-          productCharacteristicFilter += "))";
-        }
+        productCharacteristicFilter += "))";
         // external modules filter
         var sqlCriteriaFilter = "";
         me.customFilters.forEach(function (sqlFilter) {
@@ -1522,7 +1520,7 @@
           }
         });
         OB.UTIL.SynchronizationHelper.finished(synchId, 'filterProductCharacterisctics');
-        OB.Dal.query(OB.Model.Characteristic, "select distinct(ch.id), ch._identifier from m_characteristic as ch where 1=1  " + BChar_Filter + productCharacteristicFilter + sqlCriteriaFilter + " order by UPPER(ch._identifier) asc", params, successCallbackProductCh, errorCallback, this);
+        OB.Dal.query(OB.Model.Characteristic, "select distinct(ch.id), ch._identifier from m_characteristic as ch where 1=1  " + productCharacteristicFilter + sqlCriteriaFilter + " order by UPPER(ch._identifier) asc", params, successCallbackProductCh, errorCallback, this);
       } else {
         //brand filter
         if (me.model.get('brandFilter').length > 0) {
