diff --git a/product/ERP5/tests/testERP5Simulation.py b/product/ERP5/tests/testERP5Simulation.py
index 940578ca84acb025baff3c45474ec07f85025489..9ba7efa86b083a7c5bad65f6fedf33bef62107cf 100644
--- a/product/ERP5/tests/testERP5Simulation.py
+++ b/product/ERP5/tests/testERP5Simulation.py
@@ -129,11 +129,9 @@ class TestERP5Simulation(TestERP5SimulationMixin, TestPackingList):
     quantity_solver_decision = filter(
       lambda x:x.getCausalityValue().getTestedProperty()=='quantity',
       solver_process.contentValues())[0]
-    # create a target solver
-    solver = solver_process.newContent(
-      portal_type='Quantity Accept Solver',
-      delivery_list=quantity_solver_decision.getDeliveryList())
-    quantity_solver_decision.setSolverValue(solver)
+    # use Quantity Accept Solver.
+    quantity_solver_decision.setSolverValue(self.portal.portal_types['Quantity Accept Solver'])
+    solver_process.buildTargetSolverList()
     solver_process.solve()
     # XXX-JPS We do not need the divergence message anymore.
     # since the divergence message == the divergence tester itself
@@ -149,11 +147,9 @@ class TestERP5Simulation(TestERP5SimulationMixin, TestPackingList):
     resource_solver_decision = filter(
       lambda x:x.getCausalityValue().getTestedProperty()=='resource',
       solver_process.contentValues())[0]
-    # create a target solver
-    solver = solver_process.newContent(
-      portal_type='Resource Accept Solver',
-      delivery_list=resource_solver_decision.getDeliveryList())
-    resource_solver_decision.setSolverValue(solver)
+    # use Resource Accept Solver.
+    resource_solver_decision.setSolverValue(self.portal.portal_types['Resource Accept Solver'])
+    solver_process.buildTargetSolverList()
     solver_process.solve()
 
   def stepSplitAndDeferPackingList(self, sequence=None, sequence_list=None, **kw):
@@ -166,16 +162,29 @@ class TestERP5Simulation(TestERP5SimulationMixin, TestPackingList):
     quantity_solver_decision = filter(
       lambda x:x.getCausalityValue().getTestedProperty()=='quantity',
       solver_process.contentValues())[0]
-    # create a target solver
+    # use Quantity Split Solver.
+    quantity_solver_decision.setSolverValue(self.portal.portal_types['Quantity Split Solver'])
+    # configure for Quantity Split Solver.
     kw = {'delivery_solver':'FIFO',
           'start_date':self.datetime + 15,
           'stop_date':self.datetime + 25}
-    solver = solver_process.newContent(
-      portal_type='Quantity Accept Solver',
-      delivery_list=quantity_solver_decision.getDeliveryList(),
-      **kw)
-    quantity_solver_decision.setSolverValue(solver)
+    quantity_solver_decision.updateConfiguration(**kw)
+    solver_process.buildTargetSolverList()
     solver_process.solve()
+    # build split deliveries manually. XXX ad-hoc
+    previous_tag = None
+    for delivery_builder in packing_list.getBuilderList():
+      this_builder_tag = '%s_split_%s' % (packing_list.getPath(),
+                                          delivery_builder.getId())
+      after_tag = []
+      if previous_tag:
+        after_tag.append(previous_tag)
+      delivery_builder.activate(
+        after_method_id=('solve',
+                         'immediateReindexObject',
+                         'recursiveImmediateReindexObject',), # XXX too brutal.
+        after_tag=after_tag,
+        ).build(explanation_uid=packing_list.getCausalityValue().getUid())
 
 def test_suite():
   suite = unittest.TestSuite()