diff --git a/runtime/parsec/codelets/codelet_ztpqrt.c b/runtime/parsec/codelets/codelet_ztpqrt.c
index a0b3f6e06cda9f115f55c9daf904216f131e2b9d..6b8a3fe2d2292570b0ca560672ff3e90ab94c055 100644
--- a/runtime/parsec/codelets/codelet_ztpqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpqrt.c
@@ -78,7 +78,7 @@ void MORSE_TASK_ztpqrt( const MORSE_option_t *options,
         sizeof(int),   &lda, VALUE,
         PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | REGION_FULL,
         sizeof(int),   &ldb, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), INOUT | REGION_FULL,
+        PASSED_BY_REF,  RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT | REGION_FULL,
         sizeof(int),   &ldt, VALUE,
         sizeof(MORSE_Complex64_t)*ib*nb, NULL, SCRATCH,
         0);
diff --git a/runtime/starpu/codelets/codelet_ztpqrt.c b/runtime/starpu/codelets/codelet_ztpqrt.c
index 4989b4d7711467a9ebdaad770d623535188ac023..893a3ec9735607828e41d8c9186a1c5134b916c9 100644
--- a/runtime/starpu/codelets/codelet_ztpqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpqrt.c
@@ -37,7 +37,7 @@ void MORSE_TASK_ztpqrt( const MORSE_option_t *options,
     MORSE_BEGIN_ACCESS_DECLARATION;
     MORSE_ACCESS_RW(A, Am, An);
     MORSE_ACCESS_RW(B, Bm, Bn);
-    MORSE_ACCESS_RW(T, Tm, Tn);
+    MORSE_ACCESS_W(T, Tm, Tn);
     MORSE_END_ACCESS_DECLARATION;
 
     starpu_insert_task(
@@ -50,7 +50,7 @@ void MORSE_TASK_ztpqrt( const MORSE_option_t *options,
         STARPU_VALUE, &lda,   sizeof(int),
         STARPU_RW,     RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn),
         STARPU_VALUE, &ldb,   sizeof(int),
-        STARPU_RW,     RTBLKADDR(T, MORSE_Complex64_t, Tm, Tn),
+        STARPU_W,      RTBLKADDR(T, MORSE_Complex64_t, Tm, Tn),
         STARPU_VALUE, &ldt,   sizeof(int),
         /* Other options */
         STARPU_SCRATCH,   options->ws_worker,