diff --git a/logger/Makefile.am b/logger/Makefile.am
index bc0d67ffbcd908799c6de5b1c64a23d5dc462b4d..f7542eb54be8e04c2c40245849d8ee5e6948f5be 100644
--- a/logger/Makefile.am
+++ b/logger/Makefile.am
@@ -43,7 +43,11 @@ include_HEADERS = header.h io.h particle.h timeline.h logger_tools.h
 
 # Common source files
 AM_SOURCES = header.c io.c logger_loader.c particle.c \
-	timeline.c logger_tools.c
+	timeline.c
+if HAVEPYTHON
+AM_SOURCES += logger_loader.c
+endif
+
 
 # Include files for distribution, not installation.
 nobase_noinst_HEADERS = 
diff --git a/logger/header.c b/logger/header.c
index 70a806607183b29673241aba7832e6995a52c123..aeb48a6e77e9c2f7a31e2f491b44cb0a876fc8f6 100644
--- a/logger/header.c
+++ b/logger/header.c
@@ -3,7 +3,7 @@
 #include "io.h"
 #include "logger_tools.h"
 
-#include <Python.h>
+#include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/logger/header.h b/logger/header.h
index 06ada140666628530edfd18cbda8f35e52eff0ce..11667a49148ca4116c8ae5d6ff88b4c8f052ff2b 100644
--- a/logger/header.h
+++ b/logger/header.h
@@ -3,7 +3,6 @@
 
 #include "logger_tools.h"
 
-#include <Python.h>
 #include <stdio.h>
 #include <stdlib.h>
 
diff --git a/logger/logger_tools.h b/logger/logger_tools.h
index f3b666485fa000be0724d51e60127aefcbeaa973..b3e009ce6fbf5998a9d767472abacfaab3d50b93 100644
--- a/logger/logger_tools.h
+++ b/logger/logger_tools.h
@@ -1,9 +1,14 @@
-#ifndef __TOOLS_H__
-#define __TOOLS_H__
+#ifndef __LOGGER_TOOLS_H__
+#define __LOGGER_TOOLS_H__
 
-#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+#include "../config.h"
 
+#ifdef HAVE_PYTHON
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #include <Python.h>
+#endif
+
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -11,6 +16,7 @@
 
 struct header;
 
+#ifdef HAVE_PYTHON
 /* Set the error message for python and return the error code
  * WARNING for python, you need to return NULL and not the error code
  */
@@ -30,6 +36,23 @@ struct header;
     PyErr_SetString(PyExc_RuntimeError, error_msg);                       \
   })
 
+#else
+
+#define error(err, s, ...)                  \
+  ({                                        \
+    error_no_return(err, s, ##__VA_ARGS__); \
+    exit(1);				    \
+  })
+
+#define error_no_return(err, s, ...)					\
+  ({									\
+    char error_msg[STRING_SIZE];					\
+    sprintf(error_msg, "%s:%s():%i: " s ": %s\n", __FILE__, __FUNCTION__, \
+            __LINE__, ##__VA_ARGS__, strerror(err));			\
+  })
+
+#endif
+
 #define message(s, ...)                                             \
   ({                                                                \
     printf("%s:%s():%i: " s "\n", __FILE__, __FUNCTION__, __LINE__, \
@@ -100,4 +123,4 @@ int tools_reverse_offset(const struct header *h, void *map, size_t *offset);
  */
 int tools_check_offset(const struct header *h, void *map, size_t *offset);
 
-#endif  //__TOOLS_H__
+#endif  //__LOGGER_TOOLS_H__