diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Base_getBySiteCurrentStockList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Base_getBySiteCurrentStockList.xml
index f2c3028bc8bb516da039f3a2b6b286f04cb8561f..adecd6248507827fa1455b45f310bedcc5372f23 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Base_getBySiteCurrentStockList.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Base_getBySiteCurrentStockList.xml
@@ -79,12 +79,18 @@ for x in context.portal_simulation.getCurrentInventoryList(\n
   # XXX resourceType= uses movement table.\n
   # resource_portal_type= does not work with cells (because resource is acquired from line)\n
   resourceType=context.getPortalProductTypeList(), **kw):\n
-  if x.inventory <=0 and positive_stock:\n
+  if positive_stock and negative_stock and not zero_stock and x.inventory == 0:\n
      result_list.append(x)\n
-  if x.inventory>=0 and negative_stock:\n
+  if positive_stock and not negative_stock and zero_stock and x.inventory <0:\n
+     result_list.append(x)\n
+  if negative_stock and zero_stock and not positive_stock and x.inventory >0:\n
+     result_list.append(x)\n
+  if positive_stock and not negative_stock and not zero_stock and x.inventory <=0:\n
+     result_list.append(x)\n
+  if negative_stock and not positive_stock and not zero_stock and x.inventory >=0:\n
+     result_list.append(x)\n
+  if zero_stock and not positive_stock and not negative_stock and x.inventory!=0:\n
      result_list.append(x)\n
-  if x.inventory!=0 and zero_stock:\n
-     result_list.append(x) \n
   if not positive_stock and not negative_stock and not zero_stock:\n
      result_list.append(x)\n
 \n
diff --git a/bt5/erp5_trade/bt/revision b/bt5/erp5_trade/bt/revision
index 55a318f19d9be5830ef50c209e49d77e1896a772..4a722e9c7f37ab695fe3e4cec5d18ca4b540b508 100644
--- a/bt5/erp5_trade/bt/revision
+++ b/bt5/erp5_trade/bt/revision
@@ -1 +1 @@
-551
\ No newline at end of file
+552
\ No newline at end of file