diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c
index 6dbc507113ea353cbc6b58bfab6df90eb5597366..49b3e877f0a3fe0c08106871627a3e2e969ce357 100644
--- a/compute/pzunmlq_param.c
+++ b/compute/pzunmlq_param.c
@@ -16,17 +16,10 @@
  *  MORSE is a software package provided by Univ. of Tennessee,
  *  Univ. of California Berkeley and Univ. of Colorado Denver
  *
- * @version 2.5.0
- * @comment This file has been automatically generated
- *          from Plasma 2.5.0 for MORSE 1.0.0
- * @author Hatem Ltaief
- * @author Jakub Kurzak
- * @author Azzam Haidar
+ * @version 1.0.0
  * @author Mathieu Faverge
- * @author Emmanuel Agullo
- * @author Cedric Castagnede
  * @author Raphael Boucherie
- * @date 2010-11-15
+ * @date 2017-05-17
  * @precisions normal z -> s d c
  *
  **/
@@ -57,7 +50,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
     MORSE_desc_t *D = NULL;
 
     int k, m, n, i, p;
-    int ldam, ldan, ldbm, ldak, ldbp;
+    int ldan, ldam, ldbm, ldbn, ldak, ldbp;
     int tempnn, tempkmin, tempmm, tempkn, tempkm;
     int ib, K;
     int *tiles;
@@ -100,7 +93,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
     /* necessary to avoid dependencies between tasks regarding the diag tile */
 #if defined(CHAMELEON_COPY_DIAG)
     D = (MORSE_desc_t*)malloc(sizeof(MORSE_desc_t));
-    morse_zdesc_alloc_diag(*D, A->mb, A->nb, K*A->nb, A->nb, 0, 0, K*A->nb, A->nb, A->p, A->q);
+    morse_zdesc_alloc_diag(*D, A->mb, A->nb, K*A->mb, A->nb, 0, 0, K*A->mb, A->nb, A->p, A->q);
 #endif
 
     if (side == MorseLeft ) {
@@ -114,34 +107,34 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                 tempkm   = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
                 for (i = 0; i < qrtree->getnbgeqrf(qrtree, k); i++) {
-                    m = qrtree->getm(qrtree, k, i);
+                    n = qrtree->getm(qrtree, k, i);
 
-                    tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb;
-                    tempkmin = chameleon_min(tempmm, tempkm);
-                    ldbm = BLKLDD(B, m);
+                    tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb;
+                    ldbn = BLKLDD(B, n);
+                    tempkmin = chameleon_min(tempnn, tempkm);
 #if defined(CHAMELEON_COPY_DIAG)
                     MORSE_TASK_zlacpy(
                         &options,
-                        MorseUpper, tempkmin, tempmm, A->nb,
-                        A(k, m), ldak,
-                        D(k, m), ldak );
+                        MorseUpper, tempkmin, tempnn, A->nb,
+                        A(k, n), ldak,
+                        D(k, n), ldak );
 #if defined(CHAMELEON_USE_CUDA)
                     MORSE_TASK_zlaset(
                         &options,
-                        MorseLower, tempmm, tempkmin,
+                        MorseLower, tempkmin, tempnn,
                         0., 1.,
-                        D(k, m), ldak );
+                        D(k, n), ldak );
 #endif
 #endif
-                    for (n = 0; n < B->nt; n++) {
-                        tempnn = n == B->nt-1 ? B->n-n*B->nb : B->nb;
+                    for (m = 0; m < B->nt; m++) {
+                        tempmm = m == B->nt-1 ? B->n-n*B->nb : B->nb;
                         MORSE_TASK_zunmlq(
                             &options,
                             side, trans,
-                            tempmm, tempnn, tempkmin, ib, TS->nb,
-                            D( k, m), ldak,
-                            TS(k, m), TS->mb,
-                            B( m, n), ldbm);
+                            tempnn, tempmm, tempkmin, ib, TS->nb,
+                            D( k, n), ldak,
+                            TS(k, n), TS->mb,
+                            B( n, m), ldbn);
                     }
                 }
                 /* Setting the order of the tiles*/
@@ -164,7 +157,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                                 &options,
                                 side, trans,
                                 B->nb, tempnn, tempmm, tempnn, tempkm, ib, TS->nb,
-                                B( m, p), ldbp,
+                                B( m, p), ldbm,
                                 B( m, n), ldbm,
                                 A( k, n), ldak,
                                 TS(k, n), TS->mb);
@@ -177,11 +170,11 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                             MORSE_TASK_zttmlq(
                                 &options,
                                 side, trans,
-                                B->mb, tempnn, tempmm, tempnn, tempkn, ib, TT->mb,
+                                tempmm, B->nb, tempmm, tempnn, tempkn, ib, TT->mb,
                                 B( m, p), ldbm,
                                 B( m, n), ldbm,
-                                A( k, n), ldak,
-                                TT(k, n), TT->mb);
+                                A( k, m), ldak,
+                                TT(k, m), TT->mb);
                         }
                     }
                 }