diff --git a/runtime/starpu/codelets/codelet_zgered.c b/runtime/starpu/codelets/codelet_zgered.c
index 3c5a5f7674668c4df14e382aac75671d267c1fd8..11b002cea3900c7e6c4ac792dd830e5a809b5be3 100644
--- a/runtime/starpu/codelets/codelet_zgered.c
+++ b/runtime/starpu/codelets/codelet_zgered.c
@@ -75,7 +75,7 @@ void INSERT_TASK_zgered( const RUNTIME_option_t *options,
 #endif
             starpu_cham_tile_register( &handleAout, -1, tileA, ChamComplexHalf );
 
-            rt_starpu_insert_task(
+            rt_shm_starpu_insert_task(
                 &cl_dlag2h,
                 STARPU_VALUE,    &m,                 sizeof(int),
                 STARPU_VALUE,    &n,                 sizeof(int),
@@ -116,7 +116,7 @@ void INSERT_TASK_zgered( const RUNTIME_option_t *options,
 #endif
         starpu_cham_tile_register( &handleAout, -1, tileA, ChamComplexFloat );
 
-        rt_starpu_insert_task(
+        rt_shm_starpu_insert_task(
             &cl_zlag2c,
             STARPU_VALUE,    &m,                 sizeof(int),
             STARPU_VALUE,    &n,                 sizeof(int),
diff --git a/runtime/starpu/codelets/codelet_zgerst.c b/runtime/starpu/codelets/codelet_zgerst.c
index e74ca71f4dc17a9879c74de8460e44064ecec0ee..ba6b2bb8332c367c5191b8cf052a67844cfdc695 100644
--- a/runtime/starpu/codelets/codelet_zgerst.c
+++ b/runtime/starpu/codelets/codelet_zgerst.c
@@ -67,7 +67,7 @@ void INSERT_TASK_zgerst( const RUNTIME_option_t *options,
                  "[%2d] Convert back the tile ( %d, %d ) from half precision\n",
                  A->myrank, Am, An );
 #endif
-        rt_starpu_insert_task(
+        rt_shm_starpu_insert_task(
             &cl_hlag2d,
             STARPU_VALUE,    &m,                 sizeof(int),
             STARPU_VALUE,    &n,                 sizeof(int),
@@ -89,7 +89,7 @@ void INSERT_TASK_zgerst( const RUNTIME_option_t *options,
                  "[%2d] Convert back the tile ( %d, %d ) from half precision\n",
                  A->myrank, Am, An );
 #endif
-        rt_starpu_insert_task(
+        rt_shm_starpu_insert_task(
             &cl_clag2z,
             STARPU_VALUE,    &m,                 sizeof(int),
             STARPU_VALUE,    &n,                 sizeof(int),
diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in
index b795b4c79454e65ad9e22ca9a37b124bfe6c734a..41949dfbb7c345050a5260b47646276c7af57002 100644
--- a/runtime/starpu/include/chameleon_starpu.h.in
+++ b/runtime/starpu/include/chameleon_starpu.h.in
@@ -20,7 +20,7 @@
  * @author Loris Lucido
  * @author Terry Cojean
  * @author Matthieu Kuhn
- * @date 2024-03-16
+ * @date 2024-07-17
  *
  */
 #ifndef _chameleon_starpu_h_
@@ -149,6 +149,14 @@ void *RUNTIME_data_getaddr_withconversion( const RUNTIME_option_t *options,
 
 #endif
 
+#if defined(CHAMELEON_RUNTIME_SYNC)
+#define rt_shm_starpu_insert_task( _codelet_, ... )                         \
+    starpu_insert_task( (_codelet_), STARPU_TASK_SYNCHRONOUS, 1, ##__VA_ARGS__ )
+#else
+#define rt_shm_starpu_insert_task( _codelet_, ... )                         \
+    starpu_insert_task( (_codelet_), ##__VA_ARGS__ )
+#endif
+
 /*
  * Enable codelets names
  */