diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py
index 83a041de74470df66ecbf9631f9b927630f40b47..499ae703ced085cf14f0e06b479901e2468f23d4 100644
--- a/var/spack/repos/builtin/packages/py-ipykernel/package.py
+++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py
@@ -12,6 +12,7 @@ class PyIpykernel(PythonPackage):
     homepage = "https://pypi.python.org/pypi/ipykernel"
     url      = "https://github.com/ipython/ipykernel/archive/4.5.0.tar.gz"
 
+    version('5.1.0', sha256='30f01a2a1470d3fabbad03f5c43606c1bc2142850fc4ccedcf44281664ae9122')
     version('4.5.0', 'ea6aaf431b100452905aaca208edac72')
     version('4.4.1', 'c0033e524aa9e05ed18879641ffe6e0f')
     version('4.4.0', '8e626a1708ceff83412180d2ff2f3e57')
@@ -24,8 +25,11 @@ class PyIpykernel(PythonPackage):
     version('4.1.0', '638a43e4f8a15872f749090c3f0827b6')
 
     depends_on('python@2.7:2.8,3.3:')
+    depends_on('py-setuptools', type='build')
     depends_on('py-traitlets@4.1.0:', type=('build', 'run'))
-    depends_on('py-tornado@4.0:', type=('build', 'run'))
-    depends_on('py-ipython@4.0:', type=('build', 'run'))
+    depends_on('py-tornado@4.0:', when='@:4.999', type=('build', 'run'))
+    depends_on('py-tornado@4.2:', when='@5.0.0:', type=('build', 'run'))
+    depends_on('py-ipython@4.0:', when='@:4.999', type=('build', 'run'))
+    depends_on('py-ipython@5.0:', when='@5.0.0:', type=('build', 'run'))
     depends_on('py-jupyter-client', type=('build', 'run'))
     depends_on('py-pexpect', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index 10b2cd7e11652d66b13b20581d86ed8a5ea7d7d7..69331e0c6811234e0c32802fc3c6bc3d3171b9b2 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -26,10 +26,12 @@ class PyIpython(PythonPackage):
     depends_on('py-pygments',                   type=('build', 'run'))
     depends_on('py-pickleshare',                type=('build', 'run'))
     depends_on('py-simplegeneric@0.8:',         type=('build', 'run'))
-    depends_on('py-prompt-toolkit@1.0.4:1.999', type=('build', 'run'))
+    depends_on('py-prompt-toolkit@1.0.4:1.999', when='@:7.0.0', type=('build', 'run'))
+    depends_on('py-prompt-toolkit@2.0.0:2.999', when='@7.0.0:', type=('build', 'run'))
     depends_on('py-traitlets@4.2:',             type=('build', 'run'))
     depends_on('py-decorator',                  type=('build', 'run'))
     depends_on('py-pexpect',                    type=('build', 'run'))
+    depends_on('py-backcall',                   type=('build', 'run'), when="^python@3.3:")
 
     depends_on('py-appnope', type=('build', 'run'),
                     when=sys.platform == 'darwin' and
diff --git a/var/spack/repos/builtin/packages/py-jupyter-console/package.py b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
index 792381a11a6e57a3e19972e494cd55c2ce5d583c..fe66dc55e8b2c3692029574801017b2cc2abdc4f 100644
--- a/var/spack/repos/builtin/packages/py-jupyter-console/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
@@ -24,4 +24,3 @@ class PyJupyterConsole(PythonPackage):
     depends_on('py-ipython', type=('build', 'run'))
     depends_on('py-ipykernel', type=('build', 'run'))
     depends_on('py-pygments', type=('build', 'run'))
-    depends_on('py-prompt-toolkit@1.0.0:1.999.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py b/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py
index 7b6c52b7d21c3f020d24df797c10b322e0192683..45239772e8d55b676fbb12deffc9a954310382b1 100644
--- a/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py
@@ -38,5 +38,6 @@ class PyJupyterNotebook(PythonPackage):
     depends_on('py-nbformat', type=('build', 'run'))
     depends_on('py-nbconvert', type=('build', 'run'))
     depends_on('py-ipykernel', type=('build', 'run'))
+    depends_on('py-ipykernel@5.1.0:', when='@4.2.0:', type=('build', 'run'))
     depends_on('py-terminado@0.3.3:', when="+terminal", type=('build', 'run'))
     depends_on('py-ipywidgets', when="+terminal", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
index 447174cc56a6c43d77978c5e401938d53ac52130..1e8a04f5cd838f07190e4f5c2e67a7a41120d5c0 100644
--- a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
+++ b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
@@ -12,6 +12,7 @@ class PyPromptToolkit(PythonPackage):
     homepage = "https://pypi.python.org/pypi/prompt_toolkit"
     url      = "https://pypi.io/packages/source/p/prompt_toolkit/prompt_toolkit-1.0.9.tar.gz"
 
+    version('2.0.9', sha256='2519ad1d8038fd5fc8e770362237ad0364d16a7650fb5724af6997ed5515e3c1')
     version('1.0.9', 'a39f91a54308fb7446b1a421c11f227c')
 
     depends_on('py-setuptools', type='build')