diff --git a/bin/compile b/bin/compile
index 9d562ade0598dc9c7aa2fcfb6ca24bfabe7fe341..3d3d3b2fe95c886b92cf71deb49d1584eaee2a04 100755
--- a/bin/compile
+++ b/bin/compile
@@ -157,6 +157,7 @@ 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
@@ -185,13 +186,20 @@ sub-env $BIN_DIR/steps/geo-libs
 # GDAL support.
 source $BIN_DIR/steps/gdal
 
+# rewrite any existing egg links to point to the build dir so pip does not fail with a mismatch error
+find .heroku/python/lib/python*/site-packages/ -name "*.egg-link" -print0 | xargs -r -0 -n 1 sed -i -e "s#/app/#$(pwd)/#"
+find .heroku/python/lib/python*/site-packages/ -name "*.pth" -print0 | xargs -r -0 -n 1 sed -i -e "s#/app/#/$(pwd)/#"
+
 # Install dependencies with Pip.
 source $BIN_DIR/steps/pip-install
 
+# rewrite build dir in egg links to /app so things are found at runtime
+find .heroku/python/lib/python*/site-packages/ -name "*.egg-link" -print0 | xargs -r -0 -n 1 sed -i -e "s#$(pwd)/#/app/#"
+find .heroku/python/lib/python*/site-packages/ -name "*.pth" -print0 | xargs -r -0 -n 1 sed -i -e "s#$(pwd)/#/app/#"
+
 # Django collectstatic support.
 sub-env $BIN_DIR/steps/collectstatic
 
-
 # Create .profile script for application runtime environment variables.
 set-env PATH '$HOME/.heroku/python/bin:$PATH'
 set-env PYTHONUNBUFFERED true