diff --git a/src/org/openbravo/module/remittance/process/REM_AddRemittance.java b/src/org/openbravo/module/remittance/process/REM_AddRemittance.java
--- a/src/org/openbravo/module/remittance/process/REM_AddRemittance.java
+++ b/src/org/openbravo/module/remittance/process/REM_AddRemittance.java
@@ -52,7 +52,6 @@
 import org.openbravo.model.financialmgmt.gl.GLItem;
 import org.openbravo.model.financialmgmt.payment.FIN_Payment;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentMethod;
-import org.openbravo.model.financialmgmt.payment.FIN_PaymentPropDetail;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentSchedule;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
 import org.openbravo.model.financialmgmt.payment.PaymentPriority;
@@ -538,16 +537,8 @@
       }
 
       // block schedule payments in other payment proposal
-      final OBCriteria<FIN_PaymentPropDetail> obc = OBDal.getInstance().createCriteria(
-          FIN_PaymentPropDetail.class);
-      obc.add(Restrictions.isNotNull(FIN_PaymentPropDetail.PROPERTY_FINPAYMENTSCHEDULEDETAIL));
-      if (obc.list() != null && obc.list().size() > 0) {
-        List<FIN_PaymentScheduleDetail> aux = new ArrayList<FIN_PaymentScheduleDetail>();
-        for (FIN_PaymentPropDetail ppd : obc.list()) {
-          aux.add(ppd.getFINPaymentScheduledetail());
-        }
-        whereClause.append(" and psd.id not in (" + Utility.getInStrList(aux) + ")");
-      }
+      whereClause
+          .append(" and not exists (select 1 from FIN_Payment_Prop_Detail propDet where propDet.fINPaymentScheduledetail.id = psd.id)");
 
       // Transaction type filter
       whereClause.append(" and (");
@@ -689,6 +680,7 @@
           FIN_PaymentScheduleDetail.class, whereClause.toString());
 
       obqPSD.setParameters(parameters);
+      obqPSD.setMaxResult(1000);
       return obqPSD.list();
 
     } finally {
