diff --git a/setup.py b/setup.py
index ba5d5b8f21b81d0b84e347e50d4586c3899cbca9..e314346a39f228f49e58747623cf4e367ce06488 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,6 @@ include_dirs = [package_dir]
 
 packages = ['bob-io >= 1.3']
 version = '2.0.0a0'
-define_macros = [("XBOB_IO_VERSION", '"%s"' % version)]
 
 setup(
 
@@ -46,8 +45,8 @@ setup(
           "xbob/io/externals.cpp",
           ],
         packages = packages,
-        define_macros = define_macros,
         include_dirs = include_dirs,
+        version = version,
         ),
       Extension("xbob.io._library",
         [
@@ -59,8 +58,8 @@ setup(
           "xbob/io/main.cpp",
           ],
         packages = packages,
-        define_macros = define_macros,
         include_dirs = include_dirs,
+        version = version,
         ),
       ],
 
diff --git a/src/xbob.blitz b/src/xbob.blitz
index 2bfdea46de4100373311cb655b267499d9a779b3..80ca9beac6d15de7ce4f2b38e74f77a259b7c40a 160000
--- a/src/xbob.blitz
+++ b/src/xbob.blitz
@@ -1 +1 @@
-Subproject commit 2bfdea46de4100373311cb655b267499d9a779b3
+Subproject commit 80ca9beac6d15de7ce4f2b38e74f77a259b7c40a
diff --git a/xbob/io/externals.cpp b/xbob/io/externals.cpp
index 5320e4524d4837f9a7c0819ad8588df1670eb0c6..ce61bc07ce28d3c6897faa98b0f616c8b1dff8c1 100644
--- a/xbob/io/externals.cpp
+++ b/xbob/io/externals.cpp
@@ -942,16 +942,13 @@ PyDoc_STRVAR(module_docstr,
 
 int PyXbobCoreRandom_APIVersion = XBOB_IO_API_VERSION;
 
-#define ENTRY_FUNCTION_INNER(a) init ## a
-#define ENTRY_FUNCTION(a) ENTRY_FUNCTION_INNER(a)
+PyMODINIT_FUNC XBOB_EXT_ENTRY_NAME (void) {
 
-PyMODINIT_FUNC ENTRY_FUNCTION(XBOB_IO_VERSIONS_MODULE_NAME) (void) {
-
-  PyObject* m = Py_InitModule3(BOOST_PP_STRINGIZE(XBOB_IO_VERSIONS_MODULE_NAME), module_methods, module_docstr);
+  PyObject* m = Py_InitModule3(XBOB_EXT_MODULE_NAME, module_methods, module_docstr);
 
   /* register some constants */
   PyModule_AddIntConstant(m, "__api_version__", XBOB_IO_API_VERSION);
-  PyModule_AddStringConstant(m, "__version__", XBOB_IO_VERSION);
+  PyModule_AddStringConstant(m, "__version__", XBOB_EXT_MODULE_VERSION);
   PyModule_AddObject(m, "versions", build_version_dictionary());
 
   /* imports the NumPy C-API */
diff --git a/xbob/io/file.cpp b/xbob/io/file.cpp
index 21b47e7f8cd754d8a2f0194b447c1e0cf5892d3b..6320bb882ddb9ec539e4d6f32b0e20ae44bb92a7 100644
--- a/xbob/io/file.cpp
+++ b/xbob/io/file.cpp
@@ -14,8 +14,8 @@
 #include <stdexcept>
 #include "bobskin.h"
 
-#define FILETYPE_NAME File
-PyDoc_STRVAR(s_file_str, BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(FILETYPE_NAME));
+#define FILETYPE_NAME "File"
+PyDoc_STRVAR(s_file_str, XBOB_EXT_MODULE_PREFIX "." FILETYPE_NAME);
 
 PyDoc_STRVAR(s_file_doc,
 "File(filename, [mode='r', [pretend_extension='']]) -> new bob::io::File\n\
@@ -595,8 +595,8 @@ static PyMethodDef PyBobIoFile_Methods[] = {
  * Definition of Iterator to File *
  **********************************/
 
-#define FILEITERTYPE_NAME File.iter
-PyDoc_STRVAR(s_fileiterator_str, BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(FILEITERTYPE_NAME));
+#define FILEITERTYPE_NAME "File.iter"
+PyDoc_STRVAR(s_fileiterator_str, XBOB_EXT_MODULE_PREFIX "." FILEITERTYPE_NAME);
 
 /* How to create a new PyBobIoFileIteratorObject */
 static PyObject* PyBobIoFileIterator_New(PyTypeObject* type, PyObject*, PyObject*) {
diff --git a/xbob/io/hdf5.cpp b/xbob/io/hdf5.cpp
index 82fe45941f3575f9dc722b6aea5058020a63f885..62b68ec653587741a13a7df15c9094817b2b3b9d 100644
--- a/xbob/io/hdf5.cpp
+++ b/xbob/io/hdf5.cpp
@@ -14,8 +14,8 @@
 #include <stdexcept>
 #include "bobskin.h"
 
-#define HDF5FILE_NAME HDF5File
-PyDoc_STRVAR(s_hdf5file_str, BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(HDF5FILE_NAME));
+#define HDF5FILE_NAME "HDF5File"
+PyDoc_STRVAR(s_hdf5file_str, XBOB_EXT_MODULE_PREFIX "." HDF5FILE_NAME);
 
 PyDoc_STRVAR(s_hdf5file_doc,
 "HDF5File(filename, [mode='r']) -> new bob::io::HDF5File\n\
diff --git a/xbob/io/include/xbob.io/api.h b/xbob/io/include/xbob.io/api.h
index 18f99652646d039d966f550c2803ac5a14655cc4..89e7a448c98a97fbc34a2e99fb90c18a3f528477 100644
--- a/xbob/io/include/xbob.io/api.h
+++ b/xbob/io/include/xbob.io/api.h
@@ -8,6 +8,11 @@
 #ifndef XBOB_IO_H
 #define XBOB_IO_H
 
+/* Define Module Name and Prefix for other Modules
+   Note: We cannot use XBOB_EXT_* macros here, unfortunately */
+#define XBOB_IO_PREFIX    "xbob.io"
+#define XBOB_IO_FULL_NAME "xbob.io._library"
+
 #include <xbob.io/config.h>
 #include <bob/config.h>
 #include <bob/io/File.h>
@@ -22,9 +27,6 @@
 #include <boost/shared_ptr.hpp>
 #include <Python.h>
 
-#define XBOB_IO_MODULE_PREFIX xbob.io
-#define XBOB_IO_MODULE_NAME _library
-
 /*******************
  * C API functions *
  *******************/
@@ -269,15 +271,14 @@ typedef struct {
 # if !defined(NO_IMPORT_ARRAY)
 
   /**
-   * Returns -1 on error, 0 on success. PyCapsule_Import will set an exception
-   * if there's an error.
+   * Returns -1 on error, 0 on success.
    */
   static int import_xbob_io(void) {
 
     PyObject *c_api_object;
     PyObject *module;
 
-    module = PyImport_ImportModule(BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(XBOB_IO_MODULE_NAME));
+    module = PyImport_ImportModule(XBOB_IO_FULL_NAME);
 
     if (module == NULL) return -1;
 
@@ -295,30 +296,29 @@ typedef struct {
     }
 #   else
     if (PyCObject_Check(c_api_object)) {
-      XbobIo_API = (void **)PyCObject_AsVoidPtr(c_api_object);
+      PyXbobIo_API = (void **)PyCObject_AsVoidPtr(c_api_object);
     }
 #   endif
 
     Py_DECREF(c_api_object);
     Py_DECREF(module);
 
-    if (!XbobIo_API) {
-      PyErr_Format(PyExc_ImportError,
+    if (!PyXbobIo_API) {
+      PyErr_SetString(PyExc_ImportError, "cannot find C/C++ API "
 #   if PY_VERSION_HEX >= 0x02070000
-          "cannot find C/C++ API capsule at `%s.%s._C_API'",
+          "capsule"
 #   else
-          "cannot find C/C++ API cobject at `%s.%s._C_API'",
+          "cobject"
 #   endif
-          BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX),
-          BOOST_PP_STRINGIZE(XBOB_IO_MODULE_NAME));
+          " at `" XBOB_IO_FULL_NAME "._C_API'");
       return -1;
     }
 
     /* Checks that the imported version matches the compiled version */
-    int imported_version = *(int*)PyXbobIo_API[PyIo_APIVersion_NUM];
+    int imported_version = *(int*)PyXbobIo_API[PyXbobIo_APIVersion_NUM];
 
     if (XBOB_IO_API_VERSION != imported_version) {
-      PyErr_Format(PyExc_ImportError, "%s.%s import error: you compiled against API version 0x%04x, but are now importing an API with version 0x%04x which is not compatible - check your Python runtime environment for errors", BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX), BOOST_PP_STRINGIZE(XBOB_IO_MODULE_NAME), XBOB_IO_API_VERSION, imported_version);
+      PyErr_Format(PyExc_ImportError, XBOB_IO_FULL_NAME " import error: you compiled against API version 0x%04x, but are now importing an API with version 0x%04x which is not compatible - check your Python runtime environment for errors", XBOB_IO_API_VERSION, imported_version);
       return -1;
     }
 
diff --git a/xbob/io/main.cpp b/xbob/io/main.cpp
index 31064f6cbd743f70c18a7c11709fc59636d53c9e..215c20625ef9d01bf671ac170abf5825b9486c80 100644
--- a/xbob/io/main.cpp
+++ b/xbob/io/main.cpp
@@ -21,10 +21,7 @@ PyDoc_STRVAR(module_docstr, "bob::io classes and methods");
 
 int PyXbobIo_APIVersion = XBOB_IO_API_VERSION;
 
-#define ENTRY_FUNCTION_INNER(a) init ## a
-#define ENTRY_FUNCTION(a) ENTRY_FUNCTION_INNER(a)
-
-PyMODINIT_FUNC ENTRY_FUNCTION(XBOB_IO_MODULE_NAME) (void) {
+PyMODINIT_FUNC XBOB_EXT_ENTRY_NAME (void) {
 
   PyBobIoFile_Type.tp_new = PyType_GenericNew;
   if (PyType_Ready(&PyBobIoFile_Type) < 0) return;
@@ -46,12 +43,12 @@ PyMODINIT_FUNC ENTRY_FUNCTION(XBOB_IO_MODULE_NAME) (void) {
   PyBobIoHDF5File_Type.tp_new = PyType_GenericNew;
   if (PyType_Ready(&PyBobIoHDF5File_Type) < 0) return;
 
-  PyObject* m = Py_InitModule3(BOOST_PP_STRINGIZE(XBOB_IO_MODULE_NAME),
+  PyObject* m = Py_InitModule3(XBOB_EXT_MODULE_NAME,
       module_methods, module_docstr);
 
   /* register some constants */
   PyModule_AddIntConstant(m, "__api_version__", XBOB_IO_API_VERSION);
-  PyModule_AddStringConstant(m, "__version__", XBOB_IO_VERSION);
+  PyModule_AddStringConstant(m, "__version__", XBOB_EXT_MODULE_VERSION);
 
   /* register the types to python */
   Py_INCREF(&PyBobIoFile_Type);
diff --git a/xbob/io/videoreader.cpp b/xbob/io/videoreader.cpp
index 0390aa5e060252387673e2ef8366e64351559440..0095d143c12487c572753112f2b12130443c3ab7 100644
--- a/xbob/io/videoreader.cpp
+++ b/xbob/io/videoreader.cpp
@@ -15,8 +15,8 @@
 #include <stdexcept>
 #include "bobskin.h"
 
-#define VIDEOREADER_NAME VideoReader
-PyDoc_STRVAR(s_videoreader_str, BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(VIDEOREADER_NAME));
+#define VIDEOREADER_NAME "VideoReader"
+PyDoc_STRVAR(s_videoreader_str, XBOB_EXT_MODULE_PREFIX "." VIDEOREADER_NAME);
 
 PyDoc_STRVAR(s_videoreader_doc,
 "VideoReader(filename, [check=True]) -> new bob::io::VideoReader\n\
@@ -544,8 +544,8 @@ static PyMappingMethods PyBobIoVideoReader_Mapping = {
  * Definition of Iterator to VideoReader *
  *****************************************/
 
-#define VIDEOITERTYPE_NAME VideoReader.iter
-PyDoc_STRVAR(s_videoreaderiterator_str, BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(VIDEOITERTYPE_NAME));
+#define VIDEOITERTYPE_NAME "VideoReader.iter"
+PyDoc_STRVAR(s_videoreaderiterator_str, XBOB_EXT_MODULE_PREFIX "." VIDEOITERTYPE_NAME);
 
 static PyObject* PyBobIoVideoReaderIterator_New(PyTypeObject* type, PyObject*, PyObject*) {
 
diff --git a/xbob/io/videowriter.cpp b/xbob/io/videowriter.cpp
index 94ea02e41e2c966de8afa494283d3b84b9d9eeb2..ab88ec0af5b18520e9fc721285b03cd852757d51 100644
--- a/xbob/io/videowriter.cpp
+++ b/xbob/io/videowriter.cpp
@@ -15,8 +15,8 @@
 #include <stdexcept>
 #include "bobskin.h"
 
-#define VIDEOWRITER_NAME VideoWriter
-PyDoc_STRVAR(s_videowriter_str, BOOST_PP_STRINGIZE(XBOB_IO_MODULE_PREFIX) "." BOOST_PP_STRINGIZE(VIDEOWRITER_NAME));
+#define VIDEOWRITER_NAME "VideoWriter"
+PyDoc_STRVAR(s_videowriter_str, XBOB_EXT_MODULE_PREFIX "." VIDEOWRITER_NAME);
 
 PyDoc_STRVAR(s_videowriter_doc,
 "VideoWriter(filename, height, width, [framerate=25., [bitrate=1500000., [gop=12, [codec='', [format='', [check=True]) -> new bob::io::VideoWriter\n\