diff --git a/control/descriptor.c b/control/descriptor.c
index 8458fae118c28d6b1fab1bf706038fcd6701f116..f391f1ac82c656bef6f6eb37fc22e09afa4ba2d9 100644
--- a/control/descriptor.c
+++ b/control/descriptor.c
@@ -100,10 +100,11 @@ void chameleon_desc_init_tiles( CHAM_desc_t *desc )
         for( ii=0; ii<desc->lmt; ii++, tile++ ) {
             int rank = desc->get_rankof( desc, ii, jj );
             tile->format = CHAMELEON_TILE_FULLRANK;
-            tile->m   = ii == desc->lmt-1 ? desc->lm - ii * desc->mb : desc->mb;
-            tile->n   = jj == desc->lnt-1 ? desc->ln - jj * desc->nb : desc->nb;
-            tile->mat = (rank == desc->myrank) ? desc->get_blkaddr( desc, ii, jj ) : NULL;
-            tile->ld  = desc->get_blkldd( desc, ii );
+            tile->rank   = rank;
+            tile->m      = ii == desc->lmt-1 ? desc->lm - ii * desc->mb : desc->mb;
+            tile->n      = jj == desc->lnt-1 ? desc->ln - jj * desc->nb : desc->nb;
+            tile->mat    = (rank == desc->myrank) ? desc->get_blkaddr( desc, ii, jj ) : NULL;
+            tile->ld     = desc->get_blkldd( desc, ii );
 #if defined(CHAMELEON_KERNELS_TRACE)
             chameleon_asprintf( &(tile->name), "%s(%d,%d)", desc->name, ii, jj );
 #endif
diff --git a/include/chameleon/struct.h b/include/chameleon/struct.h
index 7e16010124e1ff8782449d8c0d6630abf42c7e5a..cf751e199c85d4beadc78476c6695fa5a7e009dc 100644
--- a/include/chameleon/struct.h
+++ b/include/chameleon/struct.h
@@ -39,9 +39,9 @@ typedef struct chameleon_tile_s {
 #if defined(CHAMELEON_KERNELS_TRACE)
     char  *name;
 #endif
-    int8_t format;
-    int    m, n, ld;
     void  *mat;
+    int    rank, m, n, ld;
+    int8_t format;
 } CHAM_tile_t;
 
 /**