diff --git a/product/ERP5/Document/SolverProcess.py b/product/ERP5/Document/SolverProcess.py
index 614ea40598e3b85ddb86cd0acb358cec2d152a78..39687e73a2127f461005336c9044cf4b30c221e3 100644
--- a/product/ERP5/Document/SolverProcess.py
+++ b/product/ERP5/Document/SolverProcess.py
@@ -183,7 +183,9 @@ class SolverProcess(XMLObject, ActiveProcess):
     for solver in self.contentValues(portal_type=self.getPortalObject().getPortalTargetSolverTypeList()):
       if solver.isTempObject():
         solver_type = solver.getPortalTypeValue()
-        solver_type.activate(activate_kw=activate_kw).solve(
+        # Since multiple documents may need the same solver, activity must be
+        # executed individually. Thus SQLQueue is needed.
+        solver_type.activate(activity='SQLQueue', activate_kw=activate_kw).solve(
           activate_kw=activate_kw,
           delivery_list=solver.getDeliveryList(),
           configuration_dict=solver.getConfigurationPropertyDict()
@@ -191,7 +193,8 @@ class SolverProcess(XMLObject, ActiveProcess):
       else:
         if isTransitionPossible(solver, 'start_solving'):
           solver.startSolving()
-        solver.activate(active_process=self, activate_kw=activate_kw).solve(
+        # SQLQueue is needed for the same reason.
+        solver.activate(activity='SQLQueue', active_process=self, activate_kw=activate_kw).solve(
           activate_kw=activate_kw)
 
   # API