diff --git a/bin/compile b/bin/compile
index 6de6509ecb41458514a4e9c27285f6b85df517ac..773766b37dea7e2fad41c4557639bfa66acde64d 100755
--- a/bin/compile
+++ b/bin/compile
@@ -30,13 +30,14 @@ PYTHON_EXE="/app/.heroku/python/bin/python"
 PIP_VERSION="1.3.1"
 DISTRIBUTE_VERSION="0.6.36"
 
+# Setup bpwatch
 export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
-
 LOGPLEX_KEY="t.b396af7f-ad75-4643-8b9e-ebb288acc624"
-BUILDPACK_VERSION=HEAD
-
 export BPWATCH_STORE_PATH=$CACHE_DIR/bpwatch.json
+# BUILDPACK_VERSION=v23
+BUILDPACK_VERSION=HEAD
 
+# Support Anvil Build_IDs
 [ ! "$REQUEST_ID" ] && REQUEST_ID=$SLUG_ID
 
 # Sanitizing environment variables.
@@ -61,13 +62,15 @@ TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
 
 # Copy Anvil app dir to temporary storage...
 bpwatch start anvil_appdir_stage
-mkdir -p $TMP_APP_DIR
-deep-mv $APP_DIR $TMP_APP_DIR
+  if [ "$SLUG_ID" ]; then
+    mkdir -p $TMP_APP_DIR
+    deep-mv $APP_DIR $TMP_APP_DIR
+  fi
 bpwatch stop anvil_appdir_stage
 
 # Copy Application code in.
 bpwatch start appdir_stage
-deep-mv $BUILD_DIR $APP_DIR
+  deep-mv $BUILD_DIR $APP_DIR
 bpwatch stop appdir_stage
 
 # Set new context.
@@ -86,7 +89,7 @@ cd $BUILD_DIR
 
 # Experimental pre_compile hook.
 bpwatch start pre_compile
-source $BIN_DIR/steps/hooks/pre_compile
+  source $BIN_DIR/steps/hooks/pre_compile
 bpwatch stop pre_compile
 
 # If no requirements given, assume `setup.py develop`.
@@ -106,15 +109,15 @@ mkdir -p $CACHE_DIR
 
 # Purge "old-style" virtualenvs.
 bpwatch start clear_old_venvs
-[ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
-[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
+  [ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
+  [ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
 bpwatch stop clear_old_venvs
 
 # Restore old artifacts from the cache.
 bpwatch start restore_cache
-for dir in $CACHED_DIRS; do
-  cp -R $CACHE_DIR/$dir . &> /dev/null || true
-done
+  for dir in $CACHED_DIRS; do
+    cp -R $CACHE_DIR/$dir . &> /dev/null || true
+  done
 bpwatch stop restore_cache
 
 set +e
@@ -131,8 +134,8 @@ PYTHON_VERSION=$(cat runtime.txt)
 if [ -f .heroku/python-version ]; then
   if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
     bpwatch start uninstall_python
-    puts-step "Found $(cat .heroku/python-version), removing."
-    rm -fr .heroku/python
+      puts-step "Found $(cat .heroku/python-version), removing."
+      rm -fr .heroku/python
     bpwatch stop uninstall_python
   else
     SKIP_INSTALL=1
@@ -142,14 +145,14 @@ fi
 
 if [ ! "$SKIP_INSTALL" ]; then
   bpwatch start install_python
-  puts-step "Preparing Python runtime ($PYTHON_VERSION)"
-  curl http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2 -s | tar jx &> /dev/null
-  if [[ $? != 0 ]] ; then
-    puts-warn "Requested runtime ($PYTHON_VERSION) was not found."
-    puts-warn "Aborting.  More info: https://devcenter.heroku.com/articles/python-support"
-    exit 1
-  fi
-  mv python .heroku/python
+    puts-step "Preparing Python runtime ($PYTHON_VERSION)"
+    curl http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2 -s | tar jx &> /dev/null
+    if [[ $? != 0 ]] ; then
+      puts-warn "Requested runtime ($PYTHON_VERSION) was not found."
+      puts-warn "Aborting.  More info: https://devcenter.heroku.com/articles/python-support"
+      exit 1
+    fi
+    mv python .heroku/python
   bpwatch stop install_python
 
   # Record for future reference.
@@ -168,18 +171,18 @@ if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
   bpwatch start prepare_environment
 
   bpwatch start install_distribute
-  # Prepare it for the real world
-  puts-step "Installing Distribute ($DISTRIBUTE_VERSION)"
-  cd $ROOT_DIR/vendor/distribute-$DISTRIBUTE_VERSION/
-  python setup.py install &> /dev/null
-  cd $WORKING_DIR
+    # Prepare it for the real world
+    puts-step "Installing Distribute ($DISTRIBUTE_VERSION)"
+    cd $ROOT_DIR/vendor/distribute-$DISTRIBUTE_VERSION/
+    python setup.py install &> /dev/null
+    cd $WORKING_DIR
   bpwatch stop install_distribute
 
   bpwatch start install_pip
-  puts-step "Installing Pip ($PIP_VERSION)"
-  cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
-  python setup.py install &> /dev/null
-  cd $WORKING_DIR
+    puts-step "Installing Pip ($PIP_VERSION)"
+    cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
+    python setup.py install &> /dev/null
+    cd $WORKING_DIR
 
   bpwatch stop install_pip
   bpwatch stop prepare_environment
@@ -191,13 +194,13 @@ hash -r
 # Pylibmc support.
 # See [`bin/steps/pylibmc`](pylibmc.html).
 bpwatch start pylibmc_install
-source $BIN_DIR/steps/pylibmc
+  source $BIN_DIR/steps/pylibmc
 bpwatch stop pylibmc_install
 
 # Install Mercurial if it appears to be required.
 if (grep -Fiq "hg+" requirements.txt) then
   bpwatch start mercurial_install
-  /app/.heroku/python/bin/pip install --use-mirrors mercurial | cleanup | indent
+    /app/.heroku/python/bin/pip install --use-mirrors mercurial | cleanup | indent
   bpwatch stop mercurial_install
 fi
 
@@ -215,7 +218,7 @@ puts-step "Installing dependencies using Pip ($PIP_VERSION)"
 
 # Django collectstatic support.
 bpwatch start collectstatic
-source $BIN_DIR/steps/collectstatic
+  source $BIN_DIR/steps/collectstatic
 bpwatch stop collectstatic
 
 # ### Finalize
@@ -234,24 +237,26 @@ set-default-env PYTHONPATH /app/
 
 # Experimental post_compile hook.
 bpwatch start post_compile
-source $BIN_DIR/steps/hooks/post_compile
+  source $BIN_DIR/steps/hooks/post_compile
 bpwatch stop post_compile
 
 # Store new artifacts in cache.
 bpwatch start dump_cache
-for dir in $CACHED_DIRS; do
-  rm -rf $CACHE_DIR/$dir
-  cp -R $dir $CACHE_DIR/
-done
+  for dir in $CACHED_DIRS; do
+    rm -rf $CACHE_DIR/$dir
+    cp -R $dir $CACHE_DIR/
+  done
 bpwatch stop dump_cache
 
 # ### Fin.
 bpwatch start appdir_commit
-deep-mv $BUILD_DIR $ORIG_BUILD_DIR
+  deep-mv $BUILD_DIR $ORIG_BUILD_DIR
 bpwatch stop appdir_commit
 
 bpwatch start anvil_appdir_commit
-deep-mv $TMP_APP_DIR $APP_DIR
+  if [ "$SLUG_ID" ]; then
+    deep-mv $TMP_APP_DIR $APP_DIR
+  fi
 bpwatch stop anvil_appdir_commit
 
 bpwatch stop compile