diff --git a/runtime/parsec/CMakeLists.txt b/runtime/parsec/CMakeLists.txt
index 9ff06bd0b2a4c9d106b028bd3299bcad5c798197..7360137bd8d9e23c2ea32ea17227cae67f8188b1 100644
--- a/runtime/parsec/CMakeLists.txt
+++ b/runtime/parsec/CMakeLists.txt
@@ -85,7 +85,6 @@ set(RUNTIME_COMMON
   control/runtime_descriptor.c
   control/runtime_options.c
   control/runtime_profiling.c
-  codelets/codelet_dataflush.c
   ${RUNTIME_COMMON_GENERATED}
   )
 
diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index faa41447a25824a15dbce315f4dd30ddc2ab2e40..67661a475bbeb8030327ba6ef82945ebc99f472a 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -25,7 +25,7 @@ int RUNTIME_sequence_create( MORSE_context_t  *morse,
     parsec_context_t  *parsec        = (parsec_context_t *)morse->schedopt;
     parsec_taskpool_t *parsec_dtd_tp = parsec_dtd_taskpool_new();
 
-    parsec_enqueue(parsec, (parsec_taskpool_t *) parsec_dtd_tp);
+    parsec_enqueue( parsec, (parsec_taskpool_t *)parsec_dtd_tp );
     sequence->schedopt = parsec_dtd_tp;
 
     parsec_context_start(parsec);
@@ -47,10 +47,9 @@ int RUNTIME_sequence_destroy( MORSE_context_t  *morse,
 
     // TODO: switch to a partial wait
     //parsec_dtd_taskpool_wait(parsec, parsec_dtd_tp);
-    parsec_context_wait(parsec);
-
-    parsec_taskpool_free(parsec_dtd_tp);
+    parsec_context_wait( parsec );
 
+    parsec_taskpool_free( parsec_dtd_tp );
     sequence->schedopt = NULL;
     return MORSE_SUCCESS;
 }
@@ -65,8 +64,7 @@ int RUNTIME_sequence_wait( MORSE_context_t  *morse,
     parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *) sequence->schedopt;
 
     assert( parsec_dtd_tp );
-
-    parsec_dtd_taskpool_wait(parsec, parsec_dtd_tp);
+    parsec_dtd_taskpool_wait( parsec, parsec_dtd_tp );
 
     return MORSE_SUCCESS;
 }
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index 0af56f510bf44edbe540675efda34171d2906925..889391269769fe0163ed9ed2d4305f0a4fd6aa27 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -308,25 +308,26 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc )
 }
 
 /*******************************************************************************
- *  Get data on cpu - Synchronous call
+ *  Flush cached data
  **/
-int RUNTIME_desc_getoncpu( const MORSE_desc_t *desc )
+void RUNTIME_flush()
 {
-    (void)desc;
-    return MORSE_SUCCESS;
 }
 
-/*******************************************************************************
- *  Get data on cpu - Asynchronous call
- **/
-int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc,
-                                 MORSE_sequence_t   *sequence )
+void RUNTIME_desc_flush( const MORSE_desc_t     *desc,
+                         const MORSE_sequence_t *sequence )
 {
     parsec_taskpool_t* PARSEC_dtd_taskpool = (parsec_taskpool_t *)(sequence->schedopt);
 
     parsec_dtd_data_flush_all( PARSEC_dtd_taskpool, (parsec_data_collection_t*)(desc->schedopt) );
+}
 
-    return MORSE_SUCCESS;
+void RUNTIME_data_flush( const MORSE_sequence_t *sequence,
+                         const MORSE_desc_t *A, int Am, int An )
+{
+    parsec_taskpool_t* PARSEC_dtd_taskpool = (parsec_taskpool_t *)(sequence->schedopt);
+
+    parsec_dtd_data_flush( PARSEC_dtd_taskpool, RTBLKADDR( A, MORSE_Complex64_t, Am, An ) );
 }
 
 /*******************************************************************************
diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c
index 70e9597f054468ff15b90021d72e79e699e54445..9ecd094216da6bf92cc7c7c52c7d37c71d72f82b 100644
--- a/runtime/starpu/control/runtime_async.c
+++ b/runtime/starpu/control/runtime_async.c
@@ -74,6 +74,5 @@ void RUNTIME_sequence_flush( MORSE_context_t  *morse,
     sequence->request = request;
     sequence->status = status;
     request->status = status;
-    starpu_task_wait_for_all();
     return;
 }