diff --git a/control/control.c b/control/control.c
index 5d62e5dd2a8696b2f82e1ef720760310a0549d5b..12589e38cc74b8d3befa88984ef487edb3bbe47d 100644
--- a/control/control.c
+++ b/control/control.c
@@ -138,14 +138,14 @@ int MORSE_Finalize(void)
         return MORSE_ERR_NOT_INITIALIZED;
     }
     MORSE_TASK_dataflush_all();
+#  if !defined(CHAMELEON_SIMULATION)
+    RUNTIME_barrier(morse);
+#  endif
     RUNTIME_finalize_scheduler( morse );
 #if defined(CHAMELEON_USE_MAGMA)
     magma_finalize();
 #endif
     morse_context_destroy();
-#  if !defined(CHAMELEON_SIMULATION)
-    RUNTIME_barrier(morse);
-#  endif
 #if defined(CHAMELEON_USE_MPI)
     if (!morse->mpi_outer_init)
         MPI_Finalize();