diff --git a/requirements.txt b/requirements.txt
index 6e29eb6..8b1fc97 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,6 @@
-pbr>=0.6,<1.0
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+pbr>=1.6 # Apache-2.0
 oslosphinx
-sphinx>=1.1.2,<1.2
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
diff --git a/setup.py b/setup.py
old mode 100755
new mode 100644
index c0a24ea..4a4d537
--- a/setup.py
+++ b/setup.py
@@ -16,6 +16,14 @@
 
 import setuptools
 
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+    import multiprocessing  # noqa
+except ImportError:
+    pass
+
 setuptools.setup(
-    setup_requires=['pbr'],
+    setup_requires=['pbr>=1.8'],
     pbr=True)