diff --git a/bob/io/base/__init__.py b/bob/io/base/__init__.py
index 47ce5c211d7c2a8eef6f160324939596c9131343..1ad32e99ece6b15ac906910134aecc635739f57f 100644
--- a/bob/io/base/__init__.py
+++ b/bob/io/base/__init__.py
@@ -214,5 +214,25 @@ def get_config():
 
   return retval.strip()
 
+
+def get_include_directories():
+  """Returns a list of include directories for dependent libraries, such as HDF5."""
+  from bob.extension import pkgconfig
+  # try to use pkg_config first
+  try: 
+    pkg = pkgconfig('hdf5')
+    return pkg.include_directories()
+  except RuntimeError:
+    from bob.extension.utils import find_header
+    # locate pkg-config on our own
+    header = 'hdf5.h'
+    candidates = find_header(header)
+    if not candidates:
+      raise RuntimeError("could not find %s's `%s' - have you installed %s on this machine?" % ('hdf5', header, 'hdf5'))
+
+    return [os.path.dirname(candidates[0])]
+
+  
+
 # gets sphinx autodoc done right - don't remove it
 __all__ = [_ for _ in dir() if not _.startswith('_')]
diff --git a/setup.py b/setup.py
index b085a65066dba62010a3ca15c6be022b9a00f322..d7708a49e53ca9f6a45ce8480afa08e4419f0f8e 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@ bob_packages = ['bob.core']
 from setuptools import setup, find_packages, dist
 dist.Distribution(dict(setup_requires=['bob.extension', 'bob.blitz'] + bob_packages))
 from bob.extension.utils import egrep, find_header, find_library
-from bob.extension.pkgconfig import pkgconfig
+from bob.extension import pkgconfig
 from bob.blitz.extension import Extension, Library, build_ext
 
 from bob.extension.utils import load_requirements