diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..a7156c32eaa988758e5184766cf9a8fec074da12
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,11 @@
+
+
+
+testing_pivgen : 
+	gcc -Iinclude/ src/* testings/testing_pivgen.c -lm
+
+testing_treewalk : 
+	gcc -Iinclude/ src/* testings/testing_treewalk.c -lm
+
+clean :
+	rm testing_pivgen testing_treewalk src/*~ testings/*~ include/*~
diff --git a/include/libhqr.h b/include/libhqr.h
index 5421c0d210c4b0c716be16565c54ef0a5005d057..85a458954b8419edb30c00b0bb6e48488f28b9e0 100644
--- a/include/libhqr.h
+++ b/include/libhqr.h
@@ -184,7 +184,7 @@ void libhqr_hqr_finalize( libhqr_tree_t *qrtree );
  * function for treewalk
  */
 
-void libhqr_treewalk(libhqr_tree_t *qrtree,int k);
+void libhqr_treewalk(const libhqr_tree_t *qrtree,int k);
 
 /*
  * Debugging functions
diff --git a/src/treewalk.c b/src/treewalk.c
index acb5fab15f0b092207bc1f608689b5b6c6f295b0..de909c4667af090b83ec3055cbb1c8c9eae3d1ad 100644
--- a/src/treewalk.c
+++ b/src/treewalk.c
@@ -141,7 +141,18 @@ void libhqr_queue_tile_delete (libhqr_queue_tile_t ** queue_tile)
  *   LIBHQR_TREEWALK
  ***************************************************/
 
-void libhqr_treewalk(libhqr_tree_t *qrtree,int k){
+/**
+ *  libhqr_treewalk
+ *
+ * @param[in] arg
+ *         Arguments specific to the reduction tree used
+ *
+ * @param[in] k
+ *         Factorization step
+ *
+ */
+
+void libhqr_treewalk(const libhqr_tree_t *qrtree,int k){
   int pivot = qrtree->mt;
   printf("%d\n" , pivot);
   int p = pivot;
@@ -149,9 +160,8 @@ void libhqr_treewalk(libhqr_tree_t *qrtree,int k){
   int a,b;
   libhqr_queue_tile_t *tt = libhqr_queue_tile_new();
   libhqr_queue_tile_t *ts = libhqr_queue_tile_new();
-  while(p = qrtree->nextpiv(qrtree, k, pivot, p) != -1){
-    while(qrtree->prevpiv(qrtree, k, pivot, p)){
-      p = qrtree->prevpiv(qrtree, k, pivot, p);
+  while(p = qrtree->nextpiv(qrtree, k, pivot, p)){
+    while(p = qrtree->prevpiv(qrtree, k, pivot, p)){
       printf("%d\n" , p);	  
       if(qrtree->gettype(qrtree, k, p)){
 	libhqr_queue_tile_post(&tt,p);
@@ -171,7 +181,6 @@ void libhqr_treewalk(libhqr_tree_t *qrtree,int k){
       printf("%d\n" , a);
     }
     libhqr_queue_tile_last(&tt);
-    p = tt->numero;
     libhqr_queue_tile_get(&tt);
   }
 }
diff --git a/testings/testing_treewalk.c b/testings/testing_treewalk.c
index 3ca3a0e06de8eea341f34745b60e997106e8a438..58dc610d0f153916ed5460150c0283a7beefc9dc 100644
--- a/testings/testing_treewalk.c
+++ b/testings/testing_treewalk.c
@@ -43,7 +43,6 @@ int main(int argc, char ** argv)
   rc = libhqr_tree_check( &matrix, &qrtree );
   printf("%d\n", rc);
   for (k=0; k<minMN; k++) {
-
     libhqr_treewalk( &qrtree, k);
   }
   libhqr_hqr_finalize( &qrtree );