diff --git a/control/control.c b/control/control.c
index b478c7eb3a5c39d6a33630559c0ad52df1a81fbd..5463536867ae66a082206dae78206f2d2c277a0b 100644
--- a/control/control.c
+++ b/control/control.c
@@ -105,6 +105,10 @@ int MORSE_InitPar(int ncpus, int ncudas, int nthreads_per_worker)
 #  endif
 #endif
     RUNTIME_init( morse, ncpus, ncudas, nthreads_per_worker );
+
+    morse->my_mpi_rank   = RUNTIME_comm_rank( morse );
+    morse->mpi_comm_size = RUNTIME_comm_size( morse );
+
     return MORSE_SUCCESS;
 }
 
diff --git a/runtime/starpu/control/runtime_control.c b/runtime/starpu/control/runtime_control.c
index 82ba00606cb2ce1f24666a566461ecd902f50f11..a6980cbb1e64428275019dded927626bd99d164c 100644
--- a/runtime/starpu/control/runtime_control.c
+++ b/runtime/starpu/control/runtime_control.c
@@ -102,8 +102,6 @@ int RUNTIME_init( MORSE_context_t *morse,
         MPI_Initialized( &flag );
 #endif
         starpu_mpi_init(NULL, NULL, !flag);
-        morse->my_mpi_rank = RUNTIME_comm_rank( morse );
-        morse->mpi_comm_size = RUNTIME_comm_size( morse );
     }
 #endif