diff --git a/bin/compile b/bin/compile
index aacf98169fbe60ec856da3d14095023ffe8a4f5e..9eccee5e1f9237770b5c7d7688ffd1d8a9628365 100755
--- a/bin/compile
+++ b/bin/compile
@@ -148,6 +148,16 @@ mkdir -p $(dirname $PROFILE_PATH)
 set +e
 PYTHON_VERSION=$(cat runtime.txt)
 
+rm -fr .heroku/python
+if [ ! $STACK = $CACHED_PYTHON_STACK ]; then
+  bpwatch start uninstall_python
+    puts-step "Stack changed, re-installing $PYTHON_VERSION."
+    rm -fr .heroku/python
+  bpwatch stop uninstall_python
+else
+  SKIP_INSTALL=1
+fi
+
 # Install Python.
 if [ -f .heroku/python-version ]; then
   if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
@@ -170,7 +180,7 @@ if [ ! "$SKIP_INSTALL" ]; then
 
     curl http://lang-python.s3.amazonaws.com/cedar-14/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
     if [[ $? != 0 ]] ; then
-      puts-warn "Requested runtime ($PYTHON_VERSION) was not found."
+      puts-warn "Requested runtime ($PYTHON_VERSION) is not available on the $STACK stack."
       puts-warn "Aborting.  More info: https://devcenter.heroku.com/articles/python-support"
       exit 1
     fi