diff --git a/compute/pztpqrt.c b/compute/pztpqrt.c
index 8dd8c63351baee3cae7b090d83b27c4993ae5c0f..0b825d5c222858c76380a79d359a483a1b7f9c2a 100644
--- a/compute/pztpqrt.c
+++ b/compute/pztpqrt.c
@@ -27,11 +27,6 @@
 #define A(m,n) A,  m,  n
 #define B(m,n) B,  m,  n
 #define T(m,n) T,  m,  n
-#if defined(CHAMELEON_COPY_DIAG)
-#define DIAG(k) DIAG, k, 0
-#else
-#define DIAG(k) A, k, k
-#endif
 
 /***************************************************************************//**
  *  Parallel tile QR factorization - dynamic scheduling
@@ -43,7 +38,6 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T,
     MORSE_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
-    MORSE_desc_t *DIAG = NULL;
 
     int k, m, n;
     int ldak, ldbm;
@@ -101,12 +95,6 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T,
 
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
-#if defined(CHAMELEON_COPY_DIAG)
-    /* necessary to avoid dependencies between tsqrt and unmqr tasks regarding the diag tile */
-    DIAG = (MORSE_desc_t*)malloc(sizeof(MORSE_desc_t));
-    morse_zdesc_alloc_diag(*DIAG, A->mb, A->nb, min(A->m, A->n), A->nb, 0, 0, min(A->m, A->n), A->nb, A->p, A->q);
-#endif
-
     for (k = 0; k < A->nt; k++) {
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -141,11 +129,4 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T,
     RUNTIME_options_ws_free(&options);
     RUNTIME_options_finalize(&options, morse);
     MORSE_TASK_dataflush_all();
-
-#if defined(CHAMELEON_COPY_DIAG)
-    MORSE_Sequence_Wait(sequence);
-    morse_desc_mat_free(DIAG);
-    free(DIAG);
-#endif
-    (void)DIAG;
 }
diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c
index ef9e4232e870a92a1ae556366c1d17a130709446..6efe33bbb728ecfdaa714abd3176720236be9a7f 100644
--- a/compute/ztpqrt.c
+++ b/compute/ztpqrt.c
@@ -215,7 +215,8 @@ int MORSE_ztpqrt( int M, int N, int L,
     return status;
 }
 
-/***************************************************************************//**
+/**
+ *******************************************************************************
  *
  * @ingroup MORSE_Complex64_t_Tile
  *
@@ -268,6 +269,7 @@ int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T
     morse_sequence_create(morse, &sequence);
     MORSE_ztpqrt_Tile_Async(L, A, B, T, sequence, &request);
     morse_sequence_wait(morse, sequence);
+    RUNTIME_desc_getoncpu(A);
     RUNTIME_desc_getoncpu(B);
 
     status = sequence->status;
@@ -275,7 +277,8 @@ int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T
     return status;
 }
 
-/***************************************************************************//**
+/**
+ *******************************************************************************
  *
  * @ingroup MORSE_Complex64_t_Tile_Async
  *
diff --git a/coreblas/compute/core_ztpmqrt.c b/coreblas/compute/core_ztpmqrt.c
index 2241b5d39ecee0e5655324511b3208ba58679a5b..b9addb167660efbf2578a8fcaed907bd6bb4b107 100644
--- a/coreblas/compute/core_ztpmqrt.c
+++ b/coreblas/compute/core_ztpmqrt.c
@@ -46,7 +46,7 @@
  * @param[in] M
  *         The number of rows of the tile B. M >= 0.
  *
- * @param[in] N1
+ * @param[in] N
  *         The number of columns of the tile B. N >= 0.
  *
  * @param[in] K
@@ -63,7 +63,7 @@
  * @param[in] V
  *         The i-th row must contain the vector which defines the
  *         elementary reflector H(i), for i = 1,2,...,k, as returned by
- *         CORE_ZTTQRT in the first k rows of its array argument V.
+ *         CORE_ZTPQRT in the first k rows of its array argument V.
  *
  * @param[in] LDV
  *         The leading dimension of the array V. LDV >= max(1,K).
@@ -84,7 +84,7 @@
  *         Q*C or Q**H*C or C*Q or C*Q**H.  See Further Details.
  *
  * @param[in] LDA
- *         The leading dimension of the array A. LDA1 >= max(1,M1).
+ *         The leading dimension of the array A. LDA >= max(1,M).
  *         If side = MorseLeft,  LDA >= max(1,K);
  *         If side = Morseright, LDA >= max(1,M).
  *
diff --git a/runtime/starpu/codelets/codelet_ztpmqrt.c b/runtime/starpu/codelets/codelet_ztpmqrt.c
index 98188588ebf9562b5f31c27a3682adb6b1fdfe0a..7afc9e1bf1250a63e32e395b4dba7c3198f28061 100644
--- a/runtime/starpu/codelets/codelet_ztpmqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpmqrt.c
@@ -69,6 +69,8 @@ void MORSE_TASK_ztpmqrt( const MORSE_option_t *options,
 #endif
             0);
     }
+
+    (void)ib; (void)nb;
 }
 
 
diff --git a/runtime/starpu/codelets/codelet_ztpqrt.c b/runtime/starpu/codelets/codelet_ztpqrt.c
index b6da13320ab94f31b852cb462021711d035c073a..06ee745ed998a4ed2316a2a60bac557e120306c4 100644
--- a/runtime/starpu/codelets/codelet_ztpqrt.c
+++ b/runtime/starpu/codelets/codelet_ztpqrt.c
@@ -61,6 +61,8 @@ void MORSE_TASK_ztpqrt( const MORSE_option_t *options,
 #endif
             0);
     }
+
+    (void)ib; (void)nb;
 }