diff --git a/control/control.c b/control/control.c
index 7a1a754b4c422347f2cbcc6b66411a73d1b66fa7..859b5eb2470c8ea485db28d596f849e3502b339c 100644
--- a/control/control.c
+++ b/control/control.c
@@ -97,6 +97,10 @@ int MORSE_InitPar(int ncpus, int ncudas, int nthreads_per_worker)
     }
 
 #if defined(CHAMELEON_USE_MPI)
+#  if defined(CHAMELEON_SIMULATION)
+    /* Assuming that there was no outer init (which SMPI doesn't support anyway) */
+    morse->mpi_outer_init = 0;
+#  else
     {
       int flag = 0, provided = 0;
       MPI_Initialized( &flag );
@@ -105,6 +109,7 @@ int MORSE_InitPar(int ncpus, int ncudas, int nthreads_per_worker)
           MPI_Init_thread( NULL, NULL, MPI_THREAD_MULTIPLE, &provided );
       }
     }
+#  endif
 #endif
 #if defined(CHAMELEON_USE_MAGMA)
     magma_init();