diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
index df8ed3346..7dad2a71f 100644
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -6527,30 +6527,58 @@
             });
           });
 
-          OB.UTIL.HookManager.executeHooks(
-            'OBPOS_PostCancelAndReplace',
-            {
-              context: context,
-              receipt: me
-            },
-            function(args) {
-              OB.UTIL.showSuccess(
-                OB.I18N.getLabel('OBPOS_OrderReplaced', [
-                  me.get('replacedorder_documentNo'),
-                  me.get('documentNo')
-                ])
+          var addProdCharsToProduct = _.after(
+            me.get('lines').length,
+            function() {
+              OB.UTIL.HookManager.executeHooks(
+                'OBPOS_PostCancelAndReplace',
+                {
+                  context: context,
+                  receipt: me
+                },
+                function(args) {
+                  OB.UTIL.showSuccess(
+                    OB.I18N.getLabel('OBPOS_OrderReplaced', [
+                      me.get('replacedorder_documentNo'),
+                      me.get('documentNo')
+                    ])
+                  );
+                  me.calculateReceipt(function() {
+                    me.unset('skipApplyPromotions');
+                    me.unset('preventServicesUpdate');
+                    me.preventOrderSave(false);
+                    me.save();
+                    OB.MobileApp.model.orderList.unshift(me, {
+                      silent: true
+                    });
+                  });
+                }
               );
-              me.calculateReceipt(function() {
-                me.unset('skipApplyPromotions');
-                me.unset('preventServicesUpdate');
-                me.preventOrderSave(false);
-                me.save();
-                OB.MobileApp.model.orderList.unshift(me, {
-                  silent: true
-                });
-              });
             }
           );
+          me.get('lines').models.forEach(function(l) {
+            if (
+              !l.get('product').get('productCharacteristics') &&
+              l.get('product').get('characteristicDescription') &&
+              !OB.MobileApp.model.hasPermission('OBPOS_remote.product', true)
+            ) {
+              OB.Dal.find(
+                OB.Model.ProductCharacteristicValue,
+                {
+                  product: l.get('product').get('id')
+                },
+                function(productcharacteristics) {
+                  l.get('product').set(
+                    'productCharacteristics',
+                    productcharacteristics.toJSON()
+                  );
+                  addProdCharsToProduct();
+                }
+              );
+            } else {
+              addProdCharsToProduct();
+            }
+          });
           // Set the last line as selected to call the 'onRearrangeEditButtonBar' event and update the isEditable and
           // isDeletable status for the lines (to hide or show the buttons)
           if (deferredLines.length) {
