diff --git a/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java b/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java
index c850e43da0..85914f8e97 100644
--- a/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java
+++ b/src/org/openbravo/erpCommon/businessUtility/CancelAndReplaceUtils.java
@@ -223,10 +223,10 @@ public class CancelAndReplaceUtils {
    *          Document number of the cancelled order.
    * @return The new document number for the order which cancels the old order.
    */
-  public static String getNextCancelDocNo(final String documentNo) {
+  public static String getNextCancelDocNo(final String documentNo, Order oldOrder) {
     final StringBuilder newDocNo = new StringBuilder();
     final String[] splittedDocNo = documentNo.split(HYPHEN);
-    if (splittedDocNo.length > 1) {
+    if (splittedDocNo.length > 1 && oldOrder != null) {
       int nextNumber;
       try {
         nextNumber = Integer.parseInt(splittedDocNo[splittedDocNo.length - 1]) + 1;
diff --git a/src/org/openbravo/erpCommon/businessUtility/CreateReplacementOrderExecutor.java b/src/org/openbravo/erpCommon/businessUtility/CreateReplacementOrderExecutor.java
index cd1bbfbba8..d1bb1e02e7 100644
--- a/src/org/openbravo/erpCommon/businessUtility/CreateReplacementOrderExecutor.java
+++ b/src/org/openbravo/erpCommon/businessUtility/CreateReplacementOrderExecutor.java
@@ -98,7 +98,7 @@ class CreateReplacementOrderExecutor extends CancelAndReplaceUtils {
     newOrder.setSummedLineAmount(BigDecimal.ZERO);
     newOrder.setOrderDate(new Date());
     newOrder.setReplacedorder(oldOrder);
-    newOrder.setDocumentNo(getNextCancelDocNo(documentNo));
+    newOrder.setDocumentNo(getNextCancelDocNo(documentNo, oldOrder.getReplacedorder()));
     OBDal.getInstance().save(newOrder);
 
     // Create new Order lines
