diff --git a/HySoP/hysop/mpi/bridge_inter.py b/HySoP/hysop/mpi/bridge_inter.py
index ea3e83ac5f2500b4cef023cf5baca17fa061e206..ae500e18f0307adff35dd42090143b839237a740 100644
--- a/HySoP/hysop/mpi/bridge_inter.py
+++ b/HySoP/hysop/mpi/bridge_inter.py
@@ -42,10 +42,10 @@ class BridgeInter(object):
         current_task = self._topology.domain.currentTask()
 
         # True if current process is in the 'from' group'
-        task_is_source = current_task() == self.source_id
+        task_is_source = current_task == self.source_id
 
         # True if current process is in the 'to' group
-        task_is_target = current_task() == self.target_id
+        task_is_target = current_task == self.target_id
 
         # Ensure that current process belongs to one and only one task.
         assert task_is_source or task_is_target
diff --git a/HySoP/hysop/operator/tests/test_adaptive_time_step.py b/HySoP/hysop/operator/tests/test_adaptive_time_step.py
index 63c5df60c102df1f994d7f4ee39147203549f4be..6d9b1b9b8f7e0148ae9a3227a4b1dd618f8fe4ac 100644
--- a/HySoP/hysop/operator/tests/test_adaptive_time_step.py
+++ b/HySoP/hysop/operator/tests/test_adaptive_time_step.py
@@ -42,13 +42,13 @@ def test_adapt():
     Here we just check if discr/setup/apply process goes well.
     """
     velo, vorti = init()
-    dt = VariableParameter(data=0.0125, name='dt')
-    op = AdaptTimeStep(velo, vorti, dt_adapt=dt,
+    simu = Simulation(nbIter=2)
+    op = AdaptTimeStep(velo, vorti, simulation=simu,
                        discretization=d3d, lcfl=0.125, cfl=0.5)
     op.discretize()
     op.setup()
-    simu = Simulation(nbIter=2)
-    op.apply(simu)
+    op.apply()
+    op.wait()
 
 
 def test_adapt_2():
@@ -56,13 +56,13 @@ def test_adapt_2():
     The same but with file output
     """
     velo, vorti = init()
-    dt = VariableParameter(data=0.0125, name='dt')
-    op = AdaptTimeStep(velo, vorti, dt_adapt=dt, io_params=True,
+    simu = Simulation(nbIter=2)
+    op = AdaptTimeStep(velo, vorti, simulation=simu, io_params=True,
                        discretization=d3d, lcfl=0.125, cfl=0.5)
     op.discretize()
     op.setup()
-    simu = Simulation(nbIter=2)
-    op.apply(simu)
+    op.apply()
+    op.wait()
     filename = op.io_params.filename
     assert os.path.exists(filename)
 
@@ -72,8 +72,8 @@ def test_adapt_3():
     The same but with external work vector
     """
     velo, vorti = init()
-    dt = VariableParameter(data=0.0125, name='dt')
-    op = AdaptTimeStep(velo, vorti, dt_adapt=dt, io_params=True,
+    simu = Simulation(nbIter=2)
+    op = AdaptTimeStep(velo, vorti, simulation=simu, io_params=True,
                        discretization=d3d, lcfl=0.125, cfl=0.5)
     op.discretize()
     wk_p = op.get_work_properties()
@@ -86,11 +86,47 @@ def test_adapt_3():
     op.setup(rwork=rwork)
     simu = Simulation(nbIter=2)
     op.apply(simu)
+    op.wait()
     filename = op.io_params.filename
     assert os.path.exists(filename)
 
 
+def test_adapt_4():
+    """
+    The same but with external work vector
+    """
+    # MPI procs are distributed among two tasks
+    GPU = 4
+    CPU = 1
+    VISU = 12
+    from parmepy.mpi.main_var import main_size
+    proc_tasks = [CPU, ] * main_size
+
+    if main_size > 2:
+        proc_tasks[-1] = GPU
+        proc_tasks[0] = GPU
+        #proc_tasks[1] = VISU
+
+    dom = pp.Box(dimension=3, proc_tasks=proc_tasks)
+    velo = Field(domain=dom, formula=computeVel,
+                 name='Velocity', isVector=True)
+    vorti = Field(domain=dom, formula=computeVort,
+                  name='Vorticity', isVector=True)
+
+    from parmepy.tools.parameters import MPI_params
+    cpu_task = MPI_params(comm=dom.comm_task, task_id=CPU)
+    simu = Simulation(nbIter=2)
+    op = AdaptTimeStep(velo, vorti, simulation=simu, io_params=True,
+                       discretization=d3d, lcfl=0.125, cfl=0.5,
+                       mpi_params=cpu_task)
+    if dom.isOnTask(CPU):
+        op.discretize()
+        op.setup()
+        op.apply()
+    op.wait()
+
 if __name__ == "__main__":
     test_adapt()
     test_adapt_2()
     test_adapt_3()
+    test_adapt_4()