diff --git a/compute/pzunglq.c b/compute/pzunglq.c
index f6f83a0b56ace9a31dcb87ed927951b3bf09254f..343c12b63ed3582a6082c097a5c2253df5fbf30f 100644
--- a/compute/pzunglq.c
+++ b/compute/pzunglq.c
@@ -116,6 +116,8 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc
                     Q(m, k), ldqm,
                     Q(m, n), ldqm);
             }
+            MORSE_TASK_dataflush( &options, A(k, n) );
+            MORSE_TASK_dataflush( &options, T(k, n) );
         }
 #if defined(CHAMELEON_COPY_DIAG)
         MORSE_TASK_zlacpy(
@@ -147,6 +149,9 @@ void morse_pzunglq(MORSE_desc_t *A, MORSE_desc_t *Q, MORSE_desc_t *T, MORSE_desc
                 Q(m, k), ldqm);
         }
 
+        MORSE_TASK_dataflush( &options, D(k)    );
+        MORSE_TASK_dataflush( &options, T(k, k) );
+
         RUNTIME_iteration_pop(morse);
     }
 
diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c
index 9ca050a4db78c7682e30b832a3d07bac0cd204c2..5543ca3b6dae28bddc025de4cb45aedc38b15755 100644
--- a/compute/pzunglq_param.c
+++ b/compute/pzunglq_param.c
@@ -127,6 +127,8 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des
                     Q(m, p), ldqm,
                     Q(m, n), ldqm);
             }
+            MORSE_TASK_dataflush( &options, A(k, n) );
+            MORSE_TASK_dataflush( &options, T(k, n) );
         }
 
         T = TS;
@@ -165,7 +167,10 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des
                     T(k, p), T->mb,
                     Q(m, p), ldqm);
             }
+            MORSE_TASK_dataflush( &options, D(k, p) );
+            MORSE_TASK_dataflush( &options, T(k, p) );
         }
+
         RUNTIME_iteration_pop(morse);
     }
 
diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c
index fe7777d095cf4deb3e8b7df28abe77f4f251f6af..b0e2214c5191217f0c82a2309ae4ec8302821a55 100644
--- a/compute/pzungqr_param.c
+++ b/compute/pzungqr_param.c
@@ -133,6 +133,8 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
                     Q(p, n), ldqp,
                     Q(m, n), ldqm);
             }
+            MORSE_TASK_dataflush( &options, A(m, k) );
+            MORSE_TASK_dataflush( &options, T(m, k) );
         }
 
         T = TS;
@@ -174,7 +176,10 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
                     T(m, k), T->mb,
                     Q(m, n), ldqm);
             }
+            MORSE_TASK_dataflush( &options, A(m, k) );
+            MORSE_TASK_dataflush( &options, T(m, k) );
         }
+
         RUNTIME_iteration_pop(morse);
     }