diff -r 11bda20002ae src/org/openbravo/erpCommon/ad_forms/DocFINPayment.java
--- a/src/org/openbravo/erpCommon/ad_forms/DocFINPayment.java	Mon Apr 16 10:54:41 2012 +0200
+++ b/src/org/openbravo/erpCommon/ad_forms/DocFINPayment.java	Mon Apr 16 13:39:42 2012 +0200
@@ -324,12 +324,14 @@
         }
       }
       FIN_Payment payment = OBDal.getInstance().get(FIN_Payment.class, Record_ID);
-      fact.createLine(
-          null,
-          getAccount(conn, payment.getPaymentMethod(), payment.getAccount(), as,
-              payment.isReceipt()), C_Currency_ID, (payment.isReceipt() ? Amounts[AMTTYPE_Gross]
-              : ""), (payment.isReceipt() ? "" : Amounts[AMTTYPE_Gross]), Fact_Acct_Group_ID,
-          "999999", DocumentType, conn);
+      if (BigDecimal.ZERO.compareTo(new BigDecimal(Amounts[AMTTYPE_Gross])) != 0) {
+        fact.createLine(
+            null,
+            getAccount(conn, payment.getPaymentMethod(), payment.getAccount(), as,
+                payment.isReceipt()), C_Currency_ID, (payment.isReceipt() ? Amounts[AMTTYPE_Gross]
+                : ""), (payment.isReceipt() ? "" : Amounts[AMTTYPE_Gross]), Fact_Acct_Group_ID,
+            "999999", DocumentType, conn);
+      }
       // Pre-payment is consumed when Used Credit Amount not equals Zero. When consuming Credit no
       // credit is generated
       if (new BigDecimal(usedAmount).compareTo(ZERO) != 0
