diff --git a/configure.ac b/configure.ac
index 658bdfe261fd01973c31890cb8795de28704735b..639feb9ddb9c41f8df650a31810d67524faf5c7f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,38 +1007,23 @@ AC_ARG_WITH([python],
     [with_python="no"]
 )
 if test "x$with_python" != "xno"; then
-   AC_CACHE_CHECK(
-      "python version",
-      ac_cv_ver_python,
-      [ac_cv_ver_python=`python -c 'import sys;print(sys.version[[:3]])' 2> /dev/null`]
-      )
-   
-   if test "x$with_python" != "xyes" -a "x$with_python" != "x"; then
-      PYTHON_LIBS=""
-      PYTHON_INCS="-I$with_python/include/python$ac_cv_ver_python"
-   else
-      PYTHON_LIBS=""
-      PYTHON_INCS=""
-   fi
-
-   have_python="yes"
-
-   AC_CHECK_PROGS(
-	[PYTHON_BIN],
-	[python$ac_cv_ver_python],
-	[AC_MSG_ERROR(Cannot find python binary!)],
-	[$with_python/bin]
-	)
-
-   AC_CHECK_LIB(
-      [python${ac_cv_ver_python}m],
-      [PyArg_ParseTuple],
-      [AC_DEFINE([HAVE_PYTHON],1,[The python library appears to be present.])
-      ],
-      [AC_MSG_ERROR(Cannot find python library!)],
-      [$PYTHON_LIBS])
+   AM_PATH_PYTHON([3], [], [AC_MSG_ERROR(python not found)])   
+   AC_ARG_VAR([PYTHON_INCS], [Include flags for python, bypassing python-config])
+   AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
+   AS_IF([test -z "$PYTHON_INCS"], [
+      AS_IF([test -z "$PYTHON_CONFIG"], [
+      	AC_PATH_PROGS([PYTHON_CONFIG],
+	          [python$PYTHON_VERSION-config python-config],
+                  [no],
+                  [`dirname $PYTHON`])
+    	AS_IF([test "$PYTHON_CONFIG" = no], [AC_MSG_ERROR([cannot find python-config for $PYTHON.])])
+      ])
+      AC_MSG_CHECKING([python include flags])
+      PYTHON_INCS=`$PYTHON_CONFIG --includes`
+      AC_MSG_RESULT([$PYTHON_INCS])
+  ])
+  have_python="yes"
 fi
-AC_SUBST([PYTHON_LIBS])
 AC_SUBST([PYTHON_INCS])
 AM_CONDITIONAL([HAVEPYTHON],[test -n "$PYTHON_INCS"])
 
diff --git a/logger/Makefile.am b/logger/Makefile.am
index 69b5b198a8c00ac0bcffb33ac3771c8ed0fa84d7..e536adf2fba194f71cf60fe233072deb3944909f 100644
--- a/logger/Makefile.am
+++ b/logger/Makefile.am
@@ -28,7 +28,7 @@ BIN_LDFLAGS = -version-info 0:0:0
 GIT_CMD = @GIT_CMD@
 
 # Additional dependencies for shared libraries.
-EXTRA_LIBS = $(PROFILER_LIBS) $(TCMALLOC_LIBS) $(JEMALLOC_LIBS) $(TBBMALLOC_LIBS) $(PYTHON_LIBS) $(HDF5_LIBS) $(FFTW_LIBS) $(GRACKLE_LIBS) $(VELOCIRAPTOR_LIBS) $(GSL_LIBS)
+EXTRA_LIBS = $(PROFILER_LIBS) $(TCMALLOC_LIBS) $(JEMALLOC_LIBS) $(TBBMALLOC_LIBS) $(HDF5_LIBS) $(FFTW_LIBS) $(GRACKLE_LIBS) $(VELOCIRAPTOR_LIBS) $(GSL_LIBS)
 
 # MPI libraries.
 # MPI_LIBS = $(MPI_THREAD_LIBS)
diff --git a/logger/logger_header.c b/logger/logger_header.c
index 364e99f10ddf2f3d1518df5aa17b782321e01c15..11e8bea4c0ae9b4b13f467d1c5a95ed2f92f5ba2 100644
--- a/logger/logger_header.c
+++ b/logger/logger_header.c
@@ -140,9 +140,7 @@ void header_read(struct header *h, void *map) {
   }
 
   if (offset != h->offset_first) {
-#ifdef SWIFT_DEBUG_CHECKS
     header_print(h);
-#endif
     error("Wrong header size (in header %li, current %li)",
           h->offset_first, offset);
   }
diff --git a/logger/logger_io.c b/logger/logger_io.c
index 89d8a8a91d796691059428a7376664e47a5837a3..617508262494b1b108df2d3577c4724a82f86b56 100644
--- a/logger/logger_io.c
+++ b/logger/logger_io.c
@@ -65,7 +65,7 @@ void io_close_file(int *fd, void **map) {
 }
 
 /**
- * @brief read a maks with its offset
+ * @brief read a mask with its offset
  *
  * @param h #header file structure
  * @param map file mapping
diff --git a/logger/logger_python_wrapper.c b/logger/logger_python_wrapper.c
index 3a28e774d5271b03b39e8935c4bebd4a811ac67b..8672a3d1e458bc666b501f8e3857eef28c639244 100644
--- a/logger/logger_python_wrapper.c
+++ b/logger/logger_python_wrapper.c
@@ -4,6 +4,8 @@
 #include "logger_time.h"
 #include "logger_reader.h"
 
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+
 #include <Python.h>
 #include <errno.h>
 #include <numpy/arrayobject.h>
@@ -15,6 +17,7 @@
  *
  * @param offset PyArrayObject list of offset for each particle
  * @param filename string filename of the dump file
+ * @param verbose Verbose level
  * @return dictionnary containing the data read
  */
 static PyObject *loadFromIndex(__attribute__((unused)) PyObject *self,
@@ -37,10 +40,12 @@ static PyObject *loadFromIndex(__attribute__((unused)) PyObject *self,
   PyArrayObject *id = NULL;
 
   size_t time_offset;
+  int verbose = 0;
 
   /* parse arguments */
 
-  if (!PyArg_ParseTuple(args, "OsL", &offset, &filename, &time_offset))
+  if (!PyArg_ParseTuple(args, "OsL|i", &offset, &filename, &time_offset,
+			&verbose))
     return NULL;
 
   if (!PyArray_Check(offset)) {
@@ -65,7 +70,7 @@ static PyObject *loadFromIndex(__attribute__((unused)) PyObject *self,
   if (!h.forward_offset) {
     io_close_file(&fd, &map);
 
-    reverse_offset(filename);
+    reverse_offset(filename, verbose);
 
     io_open_file(filename, &fd, &map);
 
@@ -80,7 +85,10 @@ static PyObject *loadFromIndex(__attribute__((unused)) PyObject *self,
 
   time_array_init(&times, &h, map, fd);
 
-  time_array_print(&times);
+  if (verbose > 0) {
+    time_array_print(&times);
+  }
+
   /* get required time */
   double time = time_array_get_time(&times, time_offset);
 
@@ -231,17 +239,20 @@ static PyObject *loadFromIndex(__attribute__((unused)) PyObject *self,
  * @brief Reverse offset in dump file
  *
  * @param filename string filename of the dump file
+ * @param verbose Verbose level
  */
 static PyObject *pyReverseOffset(__attribute__((unused)) PyObject *self,
                                  PyObject *args) {
   /* input */
   char *filename = NULL;
 
+  int verbose = 0;
+
   /* parse arguments */
 
-  if (!PyArg_ParseTuple(args, "s", &filename)) return NULL;
+  if (!PyArg_ParseTuple(args, "s|i", &filename, &verbose)) return NULL;
 
-  reverse_offset(filename);
+  reverse_offset(filename, verbose);
   
   return Py_BuildValue("");
 }
diff --git a/logger/logger_reader.c b/logger/logger_reader.c
index 609798c4bc08a4b49cd69ff3233c15b41c829fab..62b391f5b22f8f2128421ab2dd139d57de11f241 100644
--- a/logger/logger_reader.c
+++ b/logger/logger_reader.c
@@ -5,8 +5,9 @@
  * @brief Reverse offset in dump file
  *
  * @param filename string filename of the dump file
+ * @param verbose Verbose level
  */
-void reverse_offset(char *filename) {
+void reverse_offset(char *filename, int verbose) {
   struct header h;
 
   /* open file */
@@ -17,7 +18,9 @@ void reverse_offset(char *filename) {
   /* read header */
   header_read(&h, map);
 
-  header_print(&h);
+  if (verbose > 0) {
+    header_print(&h);
+  }
 
   /* check offset direction */
   if (h.forward_offset) {
@@ -32,12 +35,16 @@ void reverse_offset(char *filename) {
 
 #ifdef SWIFT_DEBUG_CHECKS
   /* check offset */
-  printf("Check offsets...\n");
+  if (verbose > 0) {
+    printf("Check offsets...\n");
+  }
   offset = h.offset_first;
   while (offset < sz) {
     tools_check_offset(&h, map, &offset);
   }
-  printf("Check done\n");
+  if (verbose > 0) {
+    printf("Check done\n");
+  }
 #endif
 
   /* reverse header offset */
@@ -46,20 +53,28 @@ void reverse_offset(char *filename) {
   offset = h.offset_first;
 
   /* reverse chunks */
-  printf("Reversing offsets...\n");
+  if (verbose > 0) {
+    printf("Reversing offsets...\n");
+  }
   while (offset < sz) {
     tools_reverse_offset(&h, map, &offset);
   }
-  printf("Reversing done\n");
+  if (verbose > 0) {
+    printf("Reversing done\n");
+  }
 
 #ifdef SWIFT_DEBUG_CHECKS
   /* check offset */
-  printf("Check offsets...\n");
+  if (verbose > 0) {
+    printf("Check offsets...\n");
+  }
   offset = h.offset_first;
   while (offset < sz) {
     tools_check_offset(&h, map, &offset);
   }
-  printf("Check done\n");
+  if (verbose > 0) {
+    printf("Check done\n");
+  }
 #endif
 
   /* free internal variables */
diff --git a/logger/logger_reader.h b/logger/logger_reader.h
index 72e42d63677cb00d9e797b5cbaa64e7e25b0c830..a233659a6ed37a84de3d069e099feafe299507d9 100644
--- a/logger/logger_reader.h
+++ b/logger/logger_reader.h
@@ -1,6 +1,6 @@
 #ifndef __LOGGER_READER_H__
 #define __LOGGER_READER_H__
 
-void reverse_offset(char *filename);
+void reverse_offset(char *filename, int verbose);
 
 #endif // __LOGGER_READER_H__