diff --git a/bin/compile b/bin/compile
index d81772ea55f1540a322e5d80979846bbae194d99..20c3289882b7d1a05877e796c2f02f6a056143af 100755
--- a/bin/compile
+++ b/bin/compile
@@ -20,7 +20,8 @@ CACHE_DIR=$2
 ENV_DIR=$3
 
 
-CACHED_DIRS=".heroku"
+CACHED_DIR=".heroku"
+CACHED_DIRS=".heroku/python .heroku/python-stack .heroku/python-version .heroku/vendor .heroku/venv"
 
 # Static configurations for virtualenv caches.
 VIRTUALENV_LOC=".heroku/venv"
@@ -145,6 +146,7 @@ bpwatch stop clear_old_venvs
 
 # Restore old artifacts from the cache.
 bpwatch start restore_cache
+  mkdir -p $CACHEDIR/$CACHED_DIR
   for dir in $CACHED_DIRS; do
     cp -R $CACHE_DIR/$dir . &> /dev/null || true
   done
@@ -209,6 +211,7 @@ bpwatch stop post_compile
 
 # Store new artifacts in cache.
 bpwatch start dump_cache
+  mkdir -p $CACHE_DIR/$CACHED_DIR
   for dir in $CACHED_DIRS; do
     rm -rf $CACHE_DIR/$dir
     cp -R $dir $CACHE_DIR/