diff --git a/compute/zgelqf.c b/compute/zgelqf.c
index 8586ba0078cc7f674e86759cf416ba5b6a6c62b3..baa8a436193a3c64317e1bc977d7f539ec1159b8 100644
--- a/compute/zgelqf.c
+++ b/compute/zgelqf.c
@@ -293,7 +293,7 @@ int MORSE_zgelqf_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T,
         morse_pzgelqfrh(A, T, Dptr, MORSE_RHBLK, sequence, request);
     }
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c
index 04ca52f79abebd4968257885b29130c490f12b57..cdc0754c52eee46c2b3aea5c607d882afef69e5f 100644
--- a/compute/zgelqf_param.c
+++ b/compute/zgelqf_param.c
@@ -289,7 +289,7 @@ int MORSE_zgelqf_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A,
 
     morse_pzgelqf_param(qrtree, A, TS, TT, Dptr, sequence, request);
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgelqs.c b/compute/zgelqs.c
index a3f3b85413e3ec3d8ad4437c71505a0a03d4da93..f8ebd9b44c68c0e2fb8d1a04a18525eab7762399 100644
--- a/compute/zgelqs.c
+++ b/compute/zgelqs.c
@@ -333,7 +333,7 @@ int MORSE_zgelqs_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B,
     }
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c
index ed50354a0fd6952b55a295eee7af46489804bced..09442f051c39c57a7c4040bfc992d4b91e350af1 100644
--- a/compute/zgelqs_param.c
+++ b/compute/zgelqs_param.c
@@ -336,7 +336,7 @@ int MORSE_zgelqs_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A,
 
     morse_pzunmlq_param(qrtree, MorseLeft, MorseConjTrans, A, B, TS, TT, Dptr, sequence, request);
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgels.c b/compute/zgels.c
index f25372b82f7c287b415dc7d76fb483032c4fd0b1..9e1fd48d7a0da24e5b7bfe216244b6354824a7c6 100644
--- a/compute/zgels.c
+++ b/compute/zgels.c
@@ -429,7 +429,7 @@ int MORSE_zgels_Tile_Async(MORSE_enum trans, MORSE_desc_t *A,
     free(subB);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index 6ad9e77da7e3e85defb23d7191a3b92818a2b59b..898ee28e37b8dcc744c0104c468b41fde7665bbf 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -417,7 +417,7 @@ int MORSE_zgels_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_enum trans,
     free(subB);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c
index 33c536e9196ba9c6f5d9e7c5225206415ab8ba35..b17e13eb017f06912d8de52dc79c7d8e40225d9a 100644
--- a/compute/zgeqrf.c
+++ b/compute/zgeqrf.c
@@ -292,7 +292,7 @@ int MORSE_zgeqrf_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T,
         morse_pzgeqrfrh(A, T, Dptr, MORSE_RHBLK, sequence, request);
     }
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c
index de1c4d95e34683a84a5ed06b1ced58c3c6dde8df..b6ce0e27f31ac1ec4ef7d2f80e6c0848aa3a6eb9 100644
--- a/compute/zgeqrf_param.c
+++ b/compute/zgeqrf_param.c
@@ -299,7 +299,7 @@ int MORSE_zgeqrf_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A,
     morse_pzgeqrf_param(qrtree, A, TS, TT, Dptr, sequence, request);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c
index e6be282938ee64c6941a4dc5bfebf220191653fb..1f97f7e57159feffa2fe006e0b80d27a53cd70e8 100644
--- a/compute/zgeqrs.c
+++ b/compute/zgeqrs.c
@@ -329,7 +329,7 @@ int MORSE_zgeqrs_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B,
     free(subB);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c
index 39b68f65bd4fa0f480cfae2af33216ea7e5757bc..369c2ac9e11d0753f326b93c37bb1d77cb41962c 100644
--- a/compute/zgeqrs_param.c
+++ b/compute/zgeqrs_param.c
@@ -326,7 +326,7 @@ int MORSE_zgeqrs_param_Tile_Async(const libhqr_tree_t *qrtree,
     free(subB);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zgesvd.c b/compute/zgesvd.c
index cc29bec510d341c16fcabcac3fe3b0b175237188..fa32a92d6b6cdddb3b9a81b095fcb1e6516a32fa 100644
--- a/compute/zgesvd.c
+++ b/compute/zgesvd.c
@@ -627,7 +627,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt,
         morse_desc_mat_free( &descVT );
     free(E);
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zheevd.c b/compute/zheevd.c
index 35963d0f1a24f6104400c1ab6c9f10e0b3c33f75..027a4944f844faae8f47caa0d97202330c16f9b1 100644
--- a/compute/zheevd.c
+++ b/compute/zheevd.c
@@ -530,7 +530,7 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo,
 
     free(E);
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zhetrd.c b/compute/zhetrd.c
index a383fddac410822c7c92f4e79ccd065c1e878701..2c4cfb0602a8b83255fe623d5fae84f42bf8e779 100644
--- a/compute/zhetrd.c
+++ b/compute/zhetrd.c
@@ -430,7 +430,7 @@ int MORSE_zhetrd_Tile_Async(MORSE_enum jobz,
     }
 #endif /* !defined(CHAMELEON_SIMULATION) */
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     morse_ztile2lap_cleanup( morse, &descABl, &descABt );
     (void)D;
diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c
index 1ac24442725500069fa5fe9dfa92ef4022ab9bc6..e1508230b3106e752b189a04d1a95dd79a329816 100644
--- a/compute/ztpgqrt.c
+++ b/compute/ztpgqrt.c
@@ -407,7 +407,7 @@ int MORSE_ztpgqrt_Tile_Async( int L,
     /*    morse_pztpgqrtrh(Q1, T, MORSE_RHBLK, sequence, request); */
     /* } */
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zunglq.c b/compute/zunglq.c
index 7833a9de60e59723d167afd823f79cfb5f2dee2b..f83d468cdeeee021d4c67ef9cb95bf21eb20eec4 100644
--- a/compute/zunglq.c
+++ b/compute/zunglq.c
@@ -314,7 +314,7 @@ int MORSE_zunglq_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q,
     }
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c
index 439c35707114356dba2753f5726fe4af1edf1bab..d8842b761a30a8f5592b1efcb43be8db1cd60e3e 100644
--- a/compute/zunglq_param.c
+++ b/compute/zunglq_param.c
@@ -309,7 +309,7 @@ int MORSE_zunglq_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A,
     morse_pzunglq_param(qrtree, A, Q, TS, TT, Dptr, sequence, request);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zungqr.c b/compute/zungqr.c
index 1ce47bdd5e608a9b4cc5668f005f1f2aa44e977b..b168ce1690cdbc2b385fe67e56b18a97f5db4ee1 100644
--- a/compute/zungqr.c
+++ b/compute/zungqr.c
@@ -311,7 +311,7 @@ int MORSE_zungqr_Tile_Async(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q,
     }
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c
index 256368d7d8a2a39cf207320180960a2c7ba6d28f..5a9a1017a430e3ce0b1359ca3ee80d9a63a25ed8 100644
--- a/compute/zungqr_param.c
+++ b/compute/zungqr_param.c
@@ -307,7 +307,7 @@ int MORSE_zungqr_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_desc_t *A,
     morse_pzungqr_param(qrtree, A, Q, TS, TT, Dptr, sequence, request);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zunmlq.c b/compute/zunmlq.c
index 64061c84a7548b2dbbe6e29d2c6441253a1f0f8d..e69c5426a19b7bc960a55b6eb05749a3779f3f4a 100644
--- a/compute/zunmlq.c
+++ b/compute/zunmlq.c
@@ -376,7 +376,7 @@ int MORSE_zunmlq_Tile_Async(MORSE_enum side, MORSE_enum trans,
         morse_pzunmlqrh(side, trans, A, C, T, Dptr, MORSE_RHBLK, sequence, request);
     }
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c
index 880831c3c55cee8066cfc792239b4ad224c5e2a1..5c89da5bf2bc49d8f60f1fd92f961dc2435463c0 100644
--- a/compute/zunmlq_param.c
+++ b/compute/zunmlq_param.c
@@ -371,7 +371,7 @@ int MORSE_zunmlq_param_Tile_Async(const libhqr_tree_t *qrtree, MORSE_enum side,
     morse_pzunmlq_param(qrtree, side, trans, A, C, TS, TT, Dptr, sequence, request);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zunmqr.c b/compute/zunmqr.c
index e7c537f62bb429ccc2b653ceeb99593888d3d5b2..ce4b541f73bd1a0d7712278e086594720c7560c5 100644
--- a/compute/zunmqr.c
+++ b/compute/zunmqr.c
@@ -383,7 +383,7 @@ int MORSE_zunmqr_Tile_Async(MORSE_enum side, MORSE_enum trans,
     }
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;
diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c
index 733857bf1b40739166587f910c4c479616701177..dfa4fa77370ff12b86a3d672583863c0e8720306 100644
--- a/compute/zunmqr_param.c
+++ b/compute/zunmqr_param.c
@@ -378,7 +378,7 @@ int MORSE_zunmqr_param_Tile_Async(const libhqr_tree_t *qrtree,
     morse_pzunmqr_param(qrtree, side, trans, A, C, TS, TT, Dptr, sequence, request);
 
     if (Dptr != NULL) {
-    morse_ztile2lap_cleanup( morse, &Dptrl, &Dptrt );
+        morse_desc_mat_free( Dptr );
     }
     (void)D;
     return MORSE_SUCCESS;