diff --git a/src/org/openbravo/retail/posterminal/master/CategoryTree.java b/src/org/openbravo/retail/posterminal/master/CategoryTree.java
index a1e09ac61..c3a89df2a 100644
--- a/src/org/openbravo/retail/posterminal/master/CategoryTree.java
+++ b/src/org/openbravo/retail/posterminal/master/CategoryTree.java
@@ -86,10 +86,9 @@ public class CategoryTree extends ProcessHQLQuery {
   private String getRegularProductCategoryTreeHqlString(
       final HQLPropertyList regularProductsCategoriesTreeHQLProperties, final Long lastUpdated) {
     final StringBuilder query = new StringBuilder();
-    query.append(" select distinct");
+    query.append(" select");
     query.append(regularProductsCategoriesTreeHQLProperties.getHqlSelect());
-    query.append(" from OBRETCO_Productcategory pCat");
-    query.append(" join pCat.productCategory pc");
+    query.append(" from ProductCategory pc");
     query.append(" , ADTreeNode tn");
     query.append(" where tn.$readableSimpleClientCriteria");
     query.append(" and tn.node = pc.id");
@@ -102,6 +101,9 @@ public class CategoryTree extends ProcessHQLQuery {
     query.append("   where o.id in :orgIds");
     query.append("   and ad_org_isinnaturaltree(tn.organization.id, o.id, tn.client.id) = 'Y'");
     query.append(" )");
+    query.append(" and exists (select 1 from OBRETCO_Productcategory pCat");
+    query.append("   where pCat.$readableSimpleClientCriteria ");
+    query.append("   and pCat.productCategory.id = pc.id)");
     return query.toString();
   }
 
