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
@@ -680,6 +680,13 @@
               leftAreaProductsCh.style.height = newHeight + 'px';
             }
           }
+        }, {
+          name: 'renderLoadingCh',
+          style: 'border-bottom: 1px solid #cccccc; padding: 20px; text-align: center; font-weight: bold; font-size: 20px; color: #cccccc',
+          showing: false,
+          initComponents: function () {
+            this.setContent(OB.I18N.getLabel('OBPOS_LblLoading'));
+          }
         }]
       }]
     }, {
@@ -917,6 +924,8 @@
           }
         }
         me.productsCh.reset(dataProductCh.models);
+        me.$.renderLoadingCh.hide();
+        me.$.productsCh.show();
       } else if (me.model.get('filter').length > 0) {
         if (!OB.MobileApp.model.hasPermission('OBPOS_remote.product', true)) {
           filterWhereClause = ' and prod_ch.m_characteristic_id in (' + "'" + me.model.get('filter')[0].characteristic_id + "'" + ')';
@@ -929,6 +938,8 @@
                 dataProdCh.models[i].set('filtering', true);
               }
               me.productsCh.reset(dataProdCh.models);
+              me.$.renderLoadingCh.hide();
+              me.$.productsCh.show();
             }
           }, function (error) {
             OB.UTIL.showError("OBDAL error: " + error);
@@ -987,6 +998,8 @@
                 dataProdCh.models[i].set('filtering', true);
               }
               me.productsCh.reset(dataProdCh.models);
+              me.$.renderLoadingCh.hide();
+              me.$.productsCh.show();
             }
           }, function (error) {
             OB.UTIL.showError("OBDAL error: " + error);
@@ -995,6 +1008,8 @@
         }
       } else {
         me.productsCh.reset();
+        me.$.renderLoadingCh.hide();
+        me.$.productsCh.show();
       }
     }
 
@@ -1171,6 +1186,8 @@
         this.$.products.show();
       }
       if (!inEvent.skipProductCharacteristic) {
+        this.$.renderLoadingCh.show();
+        this.$.productsCh.hide();
         if (this.model.get('filter').length > 0) {
           OB.Dal.query(OB.Model.ProductCharacteristicValue, 'select distinct(m_characteristic_id), _identifier from m_product_ch_value as prod_ch where exists (select * from m_product as product where 1=1 ' + filterWhereClause + ' and prod_ch.m_product_id = product.m_product_id) and obposFilteronwebpos = "true" order by UPPER(_identifier) asc', [], successCallbackProductCh, errorCallback, this);
         } else {
