diff --git a/compute/pztpgqrt.c b/compute/pztpgqrt.c
index 973612e7ad05331f78e8e73744f23cc6caac7ceb..3bd8d9e7c8f686602db7b4233a557fbc44c30014 100644
--- a/compute/pztpgqrt.c
+++ b/compute/pztpgqrt.c
@@ -58,7 +58,7 @@ void morse_pztpgqrt( int L,
     int ib, minMT;
 
     /* Dimension of the first column */
-    int maxm  = Q2->m - L;
+    int maxm  = chameleon_max( Q2->m - L, 1 );
     int maxmt = (maxm % Q2->mb == 0) ? (maxm / Q2->mb) : (maxm / Q2->mb + 1);
     int maxmtk;
 
diff --git a/compute/pztpqrt.c b/compute/pztpqrt.c
index 25af2c85e1ed60ba4b9ddbc39a9bb3d167a7e6c7..1807857a266542ca2a902ea6511df151fcee439c 100644
--- a/compute/pztpqrt.c
+++ b/compute/pztpqrt.c
@@ -45,7 +45,7 @@ void morse_pztpqrt( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T,
     int ib;
 
     /* Dimension of the first column */
-    int maxm  = B->m - L;
+    int maxm  = chameleon_max( B->m - L, 1 );
     int maxmt = (maxm % B->mb == 0) ? (maxm / B->mb) : (maxm / B->mb + 1);
 
     morse = morse_context_self();