diff --git a/develop.cfg b/develop.cfg
index 6cde232edf50293e5a4448dd4a418f97a3422c5a..c5446ea0d7bcc6626661c0a6d660367af193abc7 100644
--- a/develop.cfg
+++ b/develop.cfg
@@ -18,8 +18,8 @@ verbose = true
 newest = false
 
 [sources]
-bob.extension = git git@gitlab.idiap.ch:bob/bob.extension
-bob.blitz = git git@gitlab.idiap.ch:bob/bob.blitz
+bob.extension = git https://gitlab.idiap.ch/bob/bob.extension
+bob.blitz = git https://gitlab.idiap.ch/bob/bob.blitz
 
 [scripts]
 recipe = bob.buildout:scripts
diff --git a/doc/conf.py b/doc/conf.py
index 32991d3836be79e505e416ba53e8b1a81b679470..8f00c161e93eb532c8f92483dad1bef50c25453c 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -30,9 +30,29 @@ extensions = [
 import sphinx
 if sphinx.__version__ >= "1.4.1":
     extensions.append('sphinx.ext.imgmath')
+    imgmath_image_format = 'svg'
 else:
     extensions.append('sphinx.ext.pngmath')
 
+# Be picky about warnings
+nitpicky = True
+
+# Ignores stuff we can't easily resolve on other project's sphinx manuals
+nitpick_ignore = []
+
+# Allows the user to override warnings from a separate file
+if os.path.exists('nitpick-exceptions.txt'):
+    for line in open('nitpick-exceptions.txt'):
+        if line.strip() == "" or line.startswith("#"):
+            continue
+        dtype, target = line.split(None, 1)
+        target = target.strip()
+        try: # python 2.x
+            target = unicode(target)
+        except NameError:
+            pass
+        nitpick_ignore.append((dtype, target))
+
 # Always includes todos
 todo_include_todos = True
 
@@ -195,6 +215,7 @@ html_favicon = 'img/favicon.ico'
 # Output file base name for HTML help builder.
 htmlhelp_basename = project_variable + u'_doc'
 
+
 # -- Post configuration --------------------------------------------------------
 
 # Included after all input documents
@@ -215,8 +236,13 @@ autodoc_default_flags = [
   ]
 
 # For inter-documentation mapping:
-from bob.extension.utils import link_documentation
-intersphinx_mapping = link_documentation()
+from bob.extension.utils import link_documentation, load_requirements
+sphinx_requirements = "extra-intersphinx.txt"
+if os.path.exists(sphinx_requirements):
+    intersphinx_mapping = link_documentation(additional_packages=load_requirements(sphinx_requirements))
+else:
+    intersphinx_mapping = link_documentation()
+
 
 # We want to remove all private (i.e. _. or __.__) members
 # that are not in the list of accepted functions
diff --git a/doc/nitpick-exceptions.txt b/doc/nitpick-exceptions.txt
new file mode 100644
index 0000000000000000000000000000000000000000..83223a1c0e3773f97615ee91faef32b184596302
--- /dev/null
+++ b/doc/nitpick-exceptions.txt
@@ -0,0 +1,13 @@
+# no sphinx correlation for these
+c:type boost
+c:type shared_ptr
+c:type mt19937
+
+# this is actually a c type
+cpp:type PyObject
+cpp:type Py_ssize_t
+
+# exceptions are not found in python 2.7
+py:exc ValueError
+
+py:meth __call__