diff --git a/product/ERP5/Document/Delivery.py b/product/ERP5/Document/Delivery.py
index eabf9ce145ed3bc5a7aefefd0879c8338c4a2feb..ad67be87d3a4b842dbb3946c8f633b4b46e47765 100755
--- a/product/ERP5/Document/Delivery.py
+++ b/product/ERP5/Document/Delivery.py
@@ -1,7 +1,8 @@
 ##############################################################################
 #
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
+# Copyright (c) 2002, 2005 Nexedi SARL and Contributors. All Rights Reserved.
 #                    Jean-Paul Smets-Solanes <jp@nexedi.com>
+#                    Romain Courteaud <romain@nexedi.com>
 #
 # WARNING: This program as such is intended to be used by professional
 # programmers who take the whole responsability of assessing all potential
@@ -32,20 +33,21 @@ from Products.CMFCore.WorkflowCore import WorkflowMethod
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5Type.XMLObject import XMLObject
-from Products.ERP5Type.XMLMatrix import TempXMLMatrix
 from Products.ERP5Type.Base import Base
 from Products.ERP5.Document.DeliveryCell import DeliveryCell
 from Acquisition import Explicit, Implicit
 from Products.PythonScripts.Utility import allow_class
 from DateTime import DateTime
-#from Products.ERP5.ERP5Globals import movement_type_list, draft_order_state, planned_order_state
 
+# XXX FIXME: to be deleted
+from Products.ERP5Type.XMLMatrix import TempXMLMatrix
 from Products.ERP5.MovementGroup import OrderMovementGroup, PathMovementGroup
 from Products.ERP5.MovementGroup import DateMovementGroup, ResourceMovementGroup
 from Products.ERP5.MovementGroup import VariantMovementGroup, RootMovementGroup
 
 from zLOG import LOG
 
+# XXX FIXME: to be deleted
 class TempDeliveryCell(DeliveryCell):
 
   def getPrice(self):
@@ -66,6 +68,7 @@ class TempDeliveryCell(DeliveryCell):
   def activate(self):
     return self
 
+# XXX FIXME: to be deleted
 class XMLMatrix(TempXMLMatrix):
 
   def newCellContent(self, id,**kw):
@@ -76,6 +79,7 @@ class XMLMatrix(TempXMLMatrix):
     self._setObject(id, new_temp_object)
     return self.get(id)
 
+# XXX FIXME: to be deleted
 class Group(Implicit):
   """
     Hold movements which have the same resource and the same variation.
@@ -260,78 +264,7 @@ class Delivery(XMLObject):
       """
       return 1
 
-    security.declareProtected(Permissions.ModifyPortalContent, 'plan')
-    def plan(self):
-      """
-        Sets the delivery to planned
-      """
-      # NEW: we never rexpand simulation - This is a task for DSolver / TSolver
-      # self.applyToDeliveryRelatedMovement(method_id = 'expand')
-
-    plan = WorkflowMethod(plan)
-
-    security.declareProtected(Permissions.ModifyPortalContent, 'confirm')
-    def confirm(self):
-      """
-        Sets the order to confirmed
-      """
-      # NEW: we never rexpand simulation - This is a task for DSolver / TSolver
-      # self.applyToDeliveryRelatedMovement(method_id = 'expand')
-
-    confirm = WorkflowMethod(confirm)
-
-    security.declareProtected(Permissions.ModifyPortalContent, 'start')
-    def start(self):
-      """
-        Starts the delivery
-      """
-      # NEW: we never rexpand simulation - This is a task for DSolver / TSolver
-      # self.applyToDeliveryRelatedMovement(method_id = 'expand')
-
-    start = WorkflowMethod(start)
-
-    security.declareProtected(Permissions.ModifyPortalContent, 'stop')
-    def stop(self):
-      """
-        Stops the delivery
-      """
-      # NEW: we never rexpand simulation - This is a task for DSolver / TSolver
-      # self.applyToDeliveryRelatedMovement(method_id = 'expand')
-
-    stop = WorkflowMethod(stop)
-
-    security.declareProtected(Permissions.ModifyPortalContent, 'deliver')
-    def deliver(self):
-      """
-        Deliver the delivery
-      """
-      # NEW: we never rexpand simulation - This is a task for DSolver / TSolver
-      # self.applyToDeliveryRelatedMovement(method_id = 'expand')
-
-    deliver = WorkflowMethod(deliver)
-
-    security.declareProtected(Permissions.ModifyPortalContent, 'cancel')
-    def cancel(self):
-      """
-        Deliver the delivery
-      """
-      # NEW: we never rexpand simulation - This is a task for DSolver / TSolver
-      # self.applyToDeliveryRelatedMovement(method_id = 'expand')
-
-    cancel = WorkflowMethod(cancel)
-
-    security.declareProtected(Permissions.ModifyPortalContent, '_invoice')
-    def _invoice(self):
-      """
-        This method is called whenever a packing list is being invoiced
-      """
-      # We will make sure that everything is well generated into  the
-      # simulation, then we will be able to buid the invoice list.
-      # we create an invoice for this delivery
-      self.activate(priority=4).buildInvoiceList()
-
-    invoice = WorkflowMethod(_invoice, 'invoice')
-
+# XXX FIXME: to be deleted
     security.declareProtected(Permissions.ModifyPortalContent, 'buildInvoiceList')
     def buildInvoiceList(self):
       """
@@ -518,19 +451,6 @@ class Delivery(XMLObject):
     def _getDestinationTotalPrice(self, context):
       return 5.0
 
-    security.declareProtected(Permissions.AccessContentsInformation, 'getTotalPrice')
-    def getTotalPrice(self):
-      """
-      """
-      result = self.z_total_price(explanation_uid = self.getUid())
-      return result[0][0]
-
-#     security.declareProtected(Permissions.AccessContentsInformation, 'getTotalPrice')
-#     def getTotalPrice(self, context=None, REQUEST=None, **kw):
-#       """
-#       """
-#       return self._getTotalPrice(self.asContext(context=context, REQUEST=REQUEST, **kw))
-
     security.declareProtected(Permissions.AccessContentsInformation, 'getDefaultTotalPrice')
     def getDefaultTotalPrice(self, context=None, REQUEST=None, **kw):
       """
@@ -603,8 +523,9 @@ class Delivery(XMLObject):
     def getDelivery(self):
       return self.getRelativeUrl()
 
-    security.declareProtected(Permissions.AccessContentsInformation, 'getMovementList')
-    def getMovementList(self, portal_type=None):
+    security.declareProtected(Permissions.AccessContentsInformation, 
+                             'getMovementList')
+    def getMovementList(self, portal_type=None, **kw):
       """
         Return a list of movements.
       """
@@ -671,7 +592,7 @@ class Delivery(XMLObject):
       """
         Returns 0 if the target is not met
       """
-      return not self.isDivergent()
+      return int(not self.isDivergent())
 
     security.declareProtected(Permissions.View, 'isSimulated')
     def isSimulated(self):
@@ -712,15 +633,6 @@ class Delivery(XMLObject):
           return 1
       return 0
 
-    security.declareProtected(Permissions.ModifyPortalContent, 'solve')
-    def solve(self, dsolver, tsolver):
-      """
-        Solves a delivery with a Solver
-        Only delivery level matter should be modified (not movements)
-      """
-      dsolver.solveDelivery(self)
-      tsolver.solveDelivery(self)
-
     #######################################################
     # Defer indexing process
     def reindexObject(self, *k, **kw):
@@ -882,6 +794,7 @@ class Delivery(XMLObject):
       return self.portal_simulation.getMovementHistoryStat(**kw)
 
 
+# XXX FIXME: to be deleted
     security.declareProtected(Permissions.AccessContentsInformation, 'collectMovement')
     def collectMovement(self, movement_list):
       """
@@ -907,7 +820,7 @@ class Delivery(XMLObject):
 
       return group_list
 
-    # XXX this should be moved to Invoice
+# XXX FIXME: to be deleted
     security.declareProtected(Permissions.AccessContentsInformation, 'buildInvoiceLineList')
     def buildInvoiceLineList(self, movement_group):
       """
@@ -967,6 +880,7 @@ class Delivery(XMLObject):
 
       return invoice_line_list
 
+# XXX FIXME: to be deleted
     # Simulation consistency propagation
     security.declareProtected(Permissions.ModifyPortalContent, 'updateFromSimulation')
     def updateFromSimulation(self, update_target = 0):
@@ -1037,6 +951,7 @@ class Delivery(XMLObject):
       # Touch the Transaction to make an automatic converge
       self.edit() 
 
+# XXX FIXME: to be deleted
     security.declareProtected(Permissions.ModifyPortalContent, 'propagateResourceToSimulation')
     def propagateResourceToSimulation(self):
       """
@@ -1093,6 +1008,7 @@ class Delivery(XMLObject):
         LOG('propagateResourceToSimulation, list_to_merge:',0,list_to_merge)
         self.portal_simulation.mergeDeliveryList(list_to_merge)
 
+# XXX FIXME: to be deleted
     security.declareProtected(Permissions.ModifyPortalContent, 'propagateArrowToSimulation')
     def propagateArrowToSimulation(self):
       """
@@ -1154,6 +1070,7 @@ class Delivery(XMLObject):
       pass
     notifySimulationChange = WorkflowMethod(notifySimulationChange)
 
+# XXX FIXME: to be deleted
     def updateSimulationDeliveryProperties(self, movement_list = None, delivery = None):
       """
       Set properties delivery_ratio and delivery_error for each simulation movement