diff --git a/var/spack/repos/builtin/packages/py-appnope/package.py b/var/spack/repos/builtin/packages/py-appnope/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..59dac3a8b370018719510db42a8b4df20149ebf3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-appnope/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyAppnope(PythonPackage):
+    """Disable App Nap on OS X 10.9"""
+
+    homepage = "https://github.com/minrk/appnope"
+    url      = "https://pypi.io/packages/source/a/appnope/appnope-0.1.0.tar.gz"
+
+    version('0.1.0', '932fbaa73792c9b06754755a774dcac5')
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index 277e090faa55cb493252c3ce91daf267c1cd6362..ff0355c5df694d39d1730be9a61205809176b51d 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -23,6 +23,8 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 from spack import *
+import sys
+import platform
 
 
 class PyIpython(PythonPackage):
@@ -35,15 +37,23 @@ class PyIpython(PythonPackage):
     version('3.1.0', 'a749d90c16068687b0ec45a27e72ef8f')
     version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
 
-    depends_on('py-pygments', type=('build', 'run'))
-    depends_on('py-setuptools', type=('build', 'run'))
+    depends_on('python@2.7:2.8,3.3:')
+    depends_on('py-setuptools@18.5:', type=('build', 'run'))
 
     # These dependencies breaks concretization
     # See https://github.com/LLNL/spack/issues/2793
     # depends_on('py-backports-shutil-get-terminal-size', when="^python@:3.2.999")  # noqa
     # depends_on('py-pathlib2', when="^python@:3.3.999")
     depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'))
-    depends_on('py-pathlib2', type=('build', 'run'))
+    depends_on('py-pathlib2',                   type=('build', 'run'))
 
-    depends_on('py-pickleshare', type=('build', 'run'))
-    depends_on('py-simplegeneric', type=('build', 'run'))
+    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-traitlets@4.2:',             type=('build', 'run'))
+    depends_on('py-decorator',                  type=('build', 'run'))
+
+    depends_on('py-appnope', type=('build', 'run'),
+                    when=sys.platform == 'darwin' and
+                            int(platform.mac_ver()[0].split('.')[1]) >= 9)
diff --git a/var/spack/repos/builtin/packages/py-jedi/package.py b/var/spack/repos/builtin/packages/py-jedi/package.py
index eb058f27322b25c60d3a531ec487ecaf7114e9d1..81f83f9ab76df8c7faf5fdb398172388e599db27 100644
--- a/var/spack/repos/builtin/packages/py-jedi/package.py
+++ b/var/spack/repos/builtin/packages/py-jedi/package.py
@@ -31,6 +31,9 @@ class PyJedi(PythonPackage):
     homepage = "https://github.com/davidhalter/jedi"
     url      = "https://pypi.io/packages/source/j/jedi/jedi-0.9.0.tar.gz"
 
+    # unfortunately pypi.io only offers a .whl
+    version('0.10.0', '89ed853d4a283bfa0fdbcf688b4d35fe',
+                url='https://github.com/davidhalter/jedi/archive/v0.10.0.tar.gz')
     version('0.9.0', '2fee93d273622527ef8c97ac736e92bd')
 
     depends_on('py-setuptools', type='build')