diff --git a/src/org/openbravo/retail/posterminal/master/Product.java b/src/org/openbravo/retail/posterminal/master/Product.java
--- a/src/org/openbravo/retail/posterminal/master/Product.java
+++ b/src/org/openbravo/retail/posterminal/master/Product.java
@@ -265,7 +265,7 @@
       hql += "AND ((pli.product.$incrementalUpdateCriteria) AND (pli.$incrementalUpdateCriteria)) ";
     }
 
-    hql += "order by pli.product.name asc";
+    hql += "order by pli.product.name, pli.product.id asc asc";
     products.add(hql);
     // Packs, combos...
     products.add("select "
@@ -291,7 +291,7 @@
         + "          and o.organization.id = :orgId )) " + "   or (p.includedOrganizations='N' "
         + "  and  exists (select 1 " + "         from PricingAdjustmentOrganization o"
         + "        where active = true" + "          and o.priceAdjustment = p"
-        + "          and o.organization.id = :orgId )) " + "    ) order by p.name asc");
+        + "          and o.organization.id = :orgId )) " + "    ) order by p.name asc, p.id asc");
 
     // generic products
     boolean isForceRemote = jsonsent.getJSONObject("parameters").has("forceRemote")
@@ -304,7 +304,7 @@
               + " from Product product left outer join product.image img left join product.oBRETCOProlProductList as pli left outer join product.pricingProductPriceList ppp "
               + " where $filtersCriteria AND (product.$incrementalUpdateCriteria) and exists (select 1 from Product product2 left join product2.oBRETCOProlProductList as pli2, "
               + " PricingProductPrice ppp2 where product.id = product2.genericProduct.id and product2 = ppp2.product and ppp2.priceListVersion.id = :priceListVersionId "
-              + " and pli2.obretcoProductlist.id = :productListId ) order by product.name asc");
+              + " and pli2.obretcoProductlist.id = :productListId ) order by product.name asc, product.id asc");
     }
 
     return products;
