diff --git a/bin/compile b/bin/compile
index 3d3d3b2fe95c886b92cf71deb49d1584eaee2a04..005eb4de417433194eabb12b183b113f9535cb9a 100755
--- a/bin/compile
+++ b/bin/compile
@@ -152,12 +152,12 @@ bpwatch start restore_cache
 bpwatch stop restore_cache
 
 mkdir -p $(dirname $PROFILE_PATH)
+mkdir /app/.heroku/src
 
 if [[ $BUILD_DIR != '/app' ]]; then
     # python expects to reside in /app, so set up symlinks
     # we will not remove these later so subsequent buildpacks can still invoke it
     ln -s $BUILD_DIR/.heroku/python /app/.heroku/python
-    ln -s $BUILD_DIR/.heroku/src /app/.heroku/src
     ln -s $BUILD_DIR/.heroku/vendor /app/.heroku/vendor
     ln -s $BUILD_DIR/.heroku/venv /app/.heroku/venv
 fi
@@ -213,6 +213,7 @@ set-default-env PYTHONPATH /app/
 # Install sane-default script for $WEB_CONCURRENCY and $FORWARDED_ALLOW_IPS.
 cp $ROOT_DIR/vendor/python.gunicorn.sh $GUNICORN_PROFILE_PATH
 
+deep-cp /app/.heroku/src $BUILD_DIR/.heroku
 
 # Experimental post_compile hook.
 bpwatch start post_compile