diff --git a/develop.cfg b/develop.cfg
index 1b9b969ceb2aa60ba220b39868c44396787f640b..bfb169ee2613f71dcc8562ed9df04b0a84bd2696 100644
--- a/develop.cfg
+++ b/develop.cfg
@@ -19,9 +19,9 @@ 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.core = git git@gitlab.idiap.ch:bob/bob.core
+bob.extension = git https://gitlab.idiap.ch/bob/bob.extension
+bob.blitz = git https://gitlab.idiap.ch/bob/bob.blitz
+bob.core = git https://gitlab.idiap.ch/bob/bob.core
 
 [scripts]
 recipe = bob.buildout:scripts
diff --git a/doc/conf.py b/doc/conf.py
index 1c095bbd73a4fc880b17599be9f7457ac17162b2..daf4fd1821afcddcc3c019d5caec09a6587169f1 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
 
@@ -59,7 +79,7 @@ source_suffix = '.rst'
 master_doc = 'index'
 
 # General information about the project.
-project = u'bob.io.base'
+project = u'<PROJECT>'
 import time
 copyright = u'%s, Idiap Research Institute' % time.strftime('%Y')
 
@@ -111,7 +131,7 @@ pygments_style = 'sphinx'
 
 # Some variables which are useful for generated material
 project_variable = project.replace('.', '_')
-short_description = u'Basic IO for Bob'
+short_description = u'<SHORT_DESCRIPTION>'
 owner = [u'Idiap Research Institute']
 
 
@@ -216,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
@@ -237,4 +262,4 @@ def member_function_test(app, what, name, obj, skip, options):
   return False
 
 def setup(app):
-  app.connect('autodoc-skip-member', member_function_test)
\ No newline at end of file
+  app.connect('autodoc-skip-member', member_function_test)