diff --git a/requirements.txt b/requirements.txt
index f3bbb8368..5b306d6d8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,8 +1,11 @@
+# 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>=0.6,!=0.7,<1.0
 argparse
 PrettyTable>=0.7,<0.8
-python-keystoneclient>=0.10.0
-requests>=1.2.1
+python-keystoneclient>=0.11.1
+requests>=2.2.0,!=2.4.0
 simplejson>=2.2.0
 Babel>=1.3
 six>=1.7.0
diff --git a/test-requirements.txt b/test-requirements.txt
index ae55f81ef..1cd8d978f 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,12 +1,15 @@
+# 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.
 # Hacking already pins down pep8, pyflakes and flake8
 hacking>=0.8.0,<0.9
 coverage>=3.6
 discover
 fixtures>=0.3.14
 mock>=1.0
-oslosphinx>=2.2.0.0a2
+oslosphinx>=2.2.0  # Apache-2.0
 python-subunit>=0.0.18
-requests-mock>=0.4.0  # Apache-2.0
-sphinx>=1.1.2,!=1.2.0,<1.3
-testtools>=0.9.34
+requests-mock>=0.5.1  # Apache-2.0
+sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
+testtools>=0.9.36,!=1.2.0
 testrepository>=0.0.18