diff --git a/src/treewalk.c b/src/treewalk.c
index 4fd9b131cffc2dc229f9c506ed374a54c2415ccf..3e934b41e150ff4f1e307e814907f9a1c287820e 100644
--- a/src/treewalk.c
+++ b/src/treewalk.c
@@ -169,8 +169,9 @@ void libhqr_treewalk(libhqr_tree_t *qrtree,int k){
       a = ts->numero;
       printf("%d/n" , a);
     }
-    libhqr_queue_tile_get(&tt);
     libhqr_queue_tile_last(&tt);
     p = tt->numero;
+    p = qrtree->nextpiv(qrtree, k, pivot, p);
+    libhqr_queue_tile_get(&tt);
   }
 }
diff --git a/testings/testing_treewalk.c b/testings/testing_treewalk.c
index d872a318a8245e429f2d1dabd6a96d880da469d9..f44a2793ecd96b71c6a36ba9580be4fc0dc32627 100644
--- a/testings/testing_treewalk.c
+++ b/testings/testing_treewalk.c
@@ -28,7 +28,7 @@ int main(int argc, char ** argv)
 {
   libhqr_tree_t qrtree;
   libhqr_tiledesc_t matrix;
-  int minMN, k;
+  int minMN, k, rc ;
   /*
    *
    * Tests for HQR code
@@ -38,8 +38,10 @@ int main(int argc, char ** argv)
   matrix.p = 1;
   matrix.mt = 4;
   matrix.nt = 13;
-  libhqr_hqr_init( &qrtree, LIBHQR_QR, &matrix, 3 , 0, 2 , -1, 0, 1);
+  libhqr_hqr_init( &qrtree, LIBHQR_QR, &matrix, 3 , 0, 2 , -1, 0, 0);
   minMN = libhqr_imin(matrix.mt, matrix.nt );
+  rc = libhqr_tree_check( &matrix, &qrtree );
+  printf("%d", rc);
   for (k=0; k<minMN; k++) {
 
     libhqr_treewalk( &qrtree, k);