diff --git a/runtime/starpu/codelets/codelet_zgeadd.c b/runtime/starpu/codelets/codelet_zgeadd.c
index dfdb27fc4666b2fa84c63eb7621224b9a5cad256..aace97617b754005d6a12c3dd55641006cb94f5a 100644
--- a/runtime/starpu/codelets/codelet_zgeadd.c
+++ b/runtime/starpu/codelets/codelet_zgeadd.c
@@ -156,8 +156,8 @@ void INSERT_TASK_zgeadd( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, B->get_rankof( B, Bm, Bn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, accessB  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, accessB  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zgemm.c b/runtime/starpu/codelets/codelet_zgemm.c
index c510cb6be00aa3f790868a7e87bd47efa813ae34..de400f20da43773e00b960a6fb02cfa640726137 100644
--- a/runtime/starpu/codelets/codelet_zgemm.c
+++ b/runtime/starpu/codelets/codelet_zgemm.c
@@ -319,9 +319,9 @@ void __INSERT_TASK_zgemm( const RUNTIME_option_t *options,
      * Register the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, xrank );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zhemm.c b/runtime/starpu/codelets/codelet_zhemm.c
index 9b9f1336783f66daa8fea60e9e03d249a5e05ee0..2ce1c3a5a5fe2501683f53856e632b5bd974c098 100644
--- a/runtime/starpu/codelets/codelet_zhemm.c
+++ b/runtime/starpu/codelets/codelet_zhemm.c
@@ -295,9 +295,9 @@ void __INSERT_TASK_zhemm( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, xrank );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zher2k.c b/runtime/starpu/codelets/codelet_zher2k.c
index 7176bbe393513f4d9db74f48b19c7b7d63dabbef..04c5354996e62e3f70b2ed908124ae0a88eeec69 100644
--- a/runtime/starpu/codelets/codelet_zher2k.c
+++ b/runtime/starpu/codelets/codelet_zher2k.c
@@ -200,9 +200,9 @@ void INSERT_TASK_zher2k( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, C->get_rankof( C, Cm, Cn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zherk.c b/runtime/starpu/codelets/codelet_zherk.c
index 2a3eda14079e069ec08f7c090ce6bf9cab00cebb..7ea5448cad03886644367b3b641f2ffaa9b665e8 100644
--- a/runtime/starpu/codelets/codelet_zherk.c
+++ b/runtime/starpu/codelets/codelet_zherk.c
@@ -199,8 +199,8 @@ void INSERT_TASK_zherk( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, C->get_rankof( C, Cm, Cn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zlascal.c b/runtime/starpu/codelets/codelet_zlascal.c
index c984f574d114672a038999219a54c7eb1cb32008..7478942fe3fe48b1bceeb0e9474243ac016cce8f 100644
--- a/runtime/starpu/codelets/codelet_zlascal.c
+++ b/runtime/starpu/codelets/codelet_zlascal.c
@@ -127,7 +127,7 @@ void INSERT_TASK_zlascal( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, A->get_rankof( A, Am, An ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_RW );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_RW );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index 46cd4d7a616ec6113e05d19e60fb360e7c4f1752..fb83eccc0d65e348efa665eb4f84df5563e246a4 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -129,7 +129,7 @@ void INSERT_TASK_zpotrf( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, A->get_rankof( A, Am, An ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_RW );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_RW );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zsymm.c b/runtime/starpu/codelets/codelet_zsymm.c
index ed0bef6458d66b2dc8c3cebec2d32397070fb19d..4298cd8dd3716c1d112949eaa6689cbacad68a37 100644
--- a/runtime/starpu/codelets/codelet_zsymm.c
+++ b/runtime/starpu/codelets/codelet_zsymm.c
@@ -296,9 +296,9 @@ void __INSERT_TASK_zsymm( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, xrank );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zsyr2k.c b/runtime/starpu/codelets/codelet_zsyr2k.c
index f8675eceec9a1032a3bd5b61b717eb39e45d64db..6ab60fbe5831fc58ccb18c8b1c3d8346ef49ca47 100644
--- a/runtime/starpu/codelets/codelet_zsyr2k.c
+++ b/runtime/starpu/codelets/codelet_zsyr2k.c
@@ -201,9 +201,9 @@ void INSERT_TASK_zsyr2k( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, C->get_rankof( C, Cm, Cn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_zsyrk.c b/runtime/starpu/codelets/codelet_zsyrk.c
index 32ded083dbad46d6a9a2ce2b6504e3766a7aac9b..d2ea231706b2409f5c440986f0af2175dcb40390 100644
--- a/runtime/starpu/codelets/codelet_zsyrk.c
+++ b/runtime/starpu/codelets/codelet_zsyrk.c
@@ -200,8 +200,8 @@ void INSERT_TASK_zsyrk( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, C->get_rankof( C, Cm, Cn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, C, Cm, Cn, accessC  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, C, Cm, Cn, accessC  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_ztradd.c b/runtime/starpu/codelets/codelet_ztradd.c
index 39c7de9667a60b79bd3ee9eb2e04482c1e67f994..3c9786734efe00dd355871336ab954922a4e0fcb 100644
--- a/runtime/starpu/codelets/codelet_ztradd.c
+++ b/runtime/starpu/codelets/codelet_ztradd.c
@@ -136,8 +136,8 @@ void INSERT_TASK_ztradd( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, B->get_rankof( B, Bm, Bn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, accessB  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, accessB  );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_ztrmm.c b/runtime/starpu/codelets/codelet_ztrmm.c
index d9d25ed28b1b5a275df649e124453a81ab93f082..bafef35505b4bed91e0ef7f268102589ed4a3fec 100644
--- a/runtime/starpu/codelets/codelet_ztrmm.c
+++ b/runtime/starpu/codelets/codelet_ztrmm.c
@@ -176,8 +176,8 @@ void INSERT_TASK_ztrmm( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, B->get_rankof( B, Bm, Bn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R  );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_RW );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_RW );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/codelets/codelet_ztrsm.c b/runtime/starpu/codelets/codelet_ztrsm.c
index 6961500fd9518f8624d2fc03d7634695f1e97861..70fdf057fa3e087bfe9e0d4df61b8727c7aae492 100644
--- a/runtime/starpu/codelets/codelet_ztrsm.c
+++ b/runtime/starpu/codelets/codelet_ztrsm.c
@@ -184,8 +184,8 @@ void INSERT_TASK_ztrsm( const RUNTIME_option_t *options,
      * Set the data handles and initialize exchanges if needed
      */
     starpu_cham_exchange_init_params( options, &params, B->get_rankof( B, Bm, Bn ) );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, A, Am, An, STARPU_R  );
-    starpu_cham_exchange_data_before_execution( options, params, &nbdata, descrs, B, Bm, Bn, STARPU_RW );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, A, Am, An, STARPU_R  );
+    starpu_cham_exchange_data_before_execution( options, &params, &nbdata, descrs, B, Bm, Bn, STARPU_RW );
 
     /*
      * Not involved, let's return
diff --git a/runtime/starpu/include/chameleon_starpu_internal.h b/runtime/starpu/include/chameleon_starpu_internal.h
index 6401ed78d48ed587a3bcb9d1bdaaf414484a4863..9beea7b0eb9f1624692989d7053e6e282ae25250 100644
--- a/runtime/starpu/include/chameleon_starpu_internal.h
+++ b/runtime/starpu/include/chameleon_starpu_internal.h
@@ -251,14 +251,14 @@ starpu_cham_exchange_init_params( const RUNTIME_option_t                 *option
 }
 
 static inline void
-starpu_cham_exchange_data_before_execution( const RUNTIME_option_t                *options,
-                                            struct starpu_mpi_task_exchange_params params,
-                                            int                                   *nbdata,
-                                            struct starpu_data_descr              *descrs,
-                                            const CHAM_desc_t                     *A,
-                                            int                                    Am,
-                                            int                                    An,
-                                            enum starpu_data_access_mode           mode )
+starpu_cham_exchange_data_before_execution( const RUNTIME_option_t                 *options,
+                                            struct starpu_mpi_task_exchange_params *params,
+                                            int                                    *nbdata,
+                                            struct starpu_data_descr               *descrs,
+                                            const CHAM_desc_t                      *A,
+                                            int                                     Am,
+                                            int                                     An,
+                                            enum starpu_data_access_mode            mode )
 {
     descrs[*nbdata].handle = RTBLKADDR( A, ChamComplexDouble, Am, An );
     descrs[*nbdata].mode   = mode;
@@ -338,14 +338,14 @@ starpu_cham_exchange_init_params( const RUNTIME_option_t                 *option
  *
  */
 static inline void
-starpu_cham_exchange_data_before_execution( const RUNTIME_option_t                *options,
-                                            struct starpu_mpi_task_exchange_params params,
-                                            int                                   *nbdata,
-                                            struct starpu_data_descr              *descrs,
-                                            const CHAM_desc_t                     *A,
-                                            int                                    Am,
-                                            int                                    An,
-                                            enum starpu_data_access_mode           mode )
+starpu_cham_exchange_data_before_execution( const RUNTIME_option_t                 *options,
+                                            struct starpu_mpi_task_exchange_params *params,
+                                            int                                    *nbdata,
+                                            struct starpu_data_descr               *descrs,
+                                            const CHAM_desc_t                      *A,
+                                            int                                     Am,
+                                            int                                     An,
+                                            enum starpu_data_access_mode            mode )
 {
     unsigned              need_submit = 0;
     starpu_data_handle_t *ptrtile     = chameleon_starpu_data_gethandle( A, Am, An );
@@ -369,7 +369,7 @@ starpu_cham_exchange_data_before_execution( const RUNTIME_option_t
         need_submit = 1;
     }
 
-    if ( !need_submit && !params.do_execute ) {
+    if ( !need_submit && !params->do_execute ) {
         return;
     }