diff --git a/compute/pzpotrf.c b/compute/pzpotrf.c
index b337be22c21d2ec3896c9413cf7d27425ed69edd..152422a5b0c18c07f3e9b89072fcb4ef717e20ea 100644
--- a/compute/pzpotrf.c
+++ b/compute/pzpotrf.c
@@ -70,6 +70,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
 
+            options.priority = 2*A->mt - 2*k;
             MORSE_TASK_zpotrf(
                 &options,
                 MorseLower, tempkm, A->mb,
@@ -78,6 +79,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
             for (m = k+1; m < A->mt; m++) {
                 tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb;
                 ldam = BLKLDD(A, m);
+
+                options.priority = 2*A->mt - 2*k - m;
                 MORSE_TASK_ztrsm(
                     &options,
                     MorseRight, MorseLower, MorseConjTrans, MorseNonUnit,
@@ -90,6 +93,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
             for (n = k+1; n < A->nt; n++) {
                 tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb;
                 ldan = BLKLDD(A, n);
+
+                options.priority = 2*A->mt - 2*k - n;
                 MORSE_TASK_zherk(
                     &options,
                     MorseLower, MorseNoTrans,
@@ -100,6 +105,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
                 for (m = n+1; m < A->mt; m++) {
                     tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb;
                     ldam = BLKLDD(A, m);
+
+                    options.priority = 2*A->mt - 2*k - n - m;
                     MORSE_TASK_zgemm(
                         &options,
                         MorseNoTrans, MorseConjTrans,
@@ -119,6 +126,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
         for (k = 0; k < A->nt; k++) {
             tempkm = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
+
+            options.priority = 2*A->nt - 2*k;
             MORSE_TASK_zpotrf(
                 &options,
                 MorseUpper,
@@ -127,6 +136,8 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
 
             for (n = k+1; n < A->nt; n++) {
                 tempnn = n == A->nt-1 ? A->n - n*A->nb : A->nb;
+
+                options.priority = 2*A->nt - 2*k - n;
                 MORSE_TASK_ztrsm(
                     &options,
                     MorseLeft, MorseUpper, MorseConjTrans, MorseNonUnit,
@@ -140,6 +151,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
                 tempmm = m == A->mt-1 ? A->m - m*A->mb : A->mb;
                 ldam = BLKLDD(A, m);
 
+                options.priority = 2*A->nt - 2*k  - m;
                 MORSE_TASK_zherk(
                     &options,
                     MorseUpper, MorseConjTrans,
@@ -150,6 +162,7 @@ void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A,
                 for (n = m+1; n < A->nt; n++) {
                     tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb;
 
+                    options.priority = 2*A->nt - 2*k - n - m;
                     MORSE_TASK_zgemm(
                         &options,
                         MorseConjTrans, MorseNoTrans,