diff --git a/product/ERP5/TargetSolver/CopyToTarget.py b/product/ERP5/TargetSolver/CopyToTarget.py
index 4dfaf1d8a5992c18c4c3578562a088daff788a37..b8680b44e7d9d0b5533970f45dc570b8796ef05a 100644
--- a/product/ERP5/TargetSolver/CopyToTarget.py
+++ b/product/ERP5/TargetSolver/CopyToTarget.py
@@ -127,31 +127,33 @@ class CopyToTarget(TargetSolver):
 
     parent_movement, parent_value_delta_dict = \
                 self._getParentParameters(simulation_movement, **value_delta_dict)
-
-    if parent_movement is not None and parent_movement.isFrozen():
+    
+    #if parent is not None and parent_movement.isFrozen():
       # If backtraxcking is not possible, we have to make sure that the
       # divergence is solved locally by using profit and loss
-      sm_quantity = simulation_movement.getQuantity()
-      delivery_quantity = \
-          simulation_movement.getDeliveryValue().getQuantity()
-#       simulation_movement.edit(
-#           profit_quantity=sm_quantity - delivery_quantity)
-    else:
-      # fix foating point rounding error
-      if is_last_movement:
+      # sm_quantity = simulation_movement.getQuantity()
+      # delivery_quantity = \
+      #      simulation_movement.getDeliveryValue().getQuantity()
+      #  simulation_movement.edit(
+      #    profit_quantity=sm_quantity - delivery_quantity)
+    #else:
+    if is_last_movement:
         delivery_quantity = \
             simulation_movement.getDeliveryValue().getQuantity()
         simulation_movement.setDeliveryError(delivery_quantity -
             value_dict['quantity'])
-      delivery = simulation_movement.getDeliveryValue()
-      simulation_movement.setDestination(delivery.getDestination())
-      simulation_movement.setSource(delivery.getSource())
-      simulation_movement.setDestinationSection(delivery.getDestinationSection())
-      simulation_movement.setSourceSection(delivery.getSourceSection())
-		   
-      simulation_movement.edit(**value_dict)
-      if parent_movement is not None:
+    
+    delivery = simulation_movement.getDeliveryValue()
+    
+    # XXX Hardcoded Set 
+    simulation_movement.setDestination(delivery.getDestination())
+    simulation_movement.setSource(delivery.getSource())
+    simulation_movement.setDestinationSection(delivery.getDestinationSection())
+    simulation_movement.setSourceSection(delivery.getSourceSection())
+		
+    simulation_movement.edit(**value_dict)
+      
+    if parent_movement is not None and not parent_movement.isFrozen():
         # backtrack to the parent movement only if it is not frozen
         self._recursivelySolve(parent_movement, is_last_movement=0,
             **parent_value_delta_dict)
-