diff --git a/src/org/openbravo/warehouse/pickinglist/PickingListActionHandler.java b/src/org/openbravo/warehouse/pickinglist/PickingListActionHandler.java
--- a/src/org/openbravo/warehouse/pickinglist/PickingListActionHandler.java
+++ b/src/org/openbravo/warehouse/pickinglist/PickingListActionHandler.java
@@ -228,6 +228,9 @@
     }
     if (resStock != null) {
       resStock.setQuantity(resStock.getQuantity().subtract(iol.getMovementQuantity()));
+      if (resStock.getQuantity().compareTo(resStock.getReleased()) < 0) {
+        resStock.setQuantity(resStock.getReleased());
+      }
       if (resStock.getQuantity().equals(BigDecimal.ZERO)) {
         res.getMaterialMgmtReservationStockList().remove(resStock);
         // Flush to persist changes in database and execute triggers.
