diff --git a/bin/compile b/bin/compile
index d57a2f48f2e48c570afa0e03f1e1d2a94fffa643..6689825d8b9a66b9340c63c35973b866265f8eac 100755
--- a/bin/compile
+++ b/bin/compile
@@ -66,6 +66,21 @@ source $BIN_DIR/utils
 APP_DIR='/app'
 TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
 
+# Copy Anvil app dir to temporary storage...
+bpwatch start anvil_appdir_stage
+  if [ "$SLUG_ID" ]; then
+    mkdir -p $TMP_APP_DIR
+    deep-mv $APP_DIR $TMP_APP_DIR
+  else
+    deep-rm $APP_DIR
+  fi
+bpwatch stop anvil_appdir_stage
+
+# Copy Application code in.
+bpwatch start appdir_stage
+  deep-mv $BUILD_DIR $APP_DIR
+bpwatch stop appdir_stage
+
 # Set new context.
 BUILD_DIR=$APP_DIR
 
@@ -188,3 +203,16 @@ bpwatch start dump_cache
     cp -R $dir $CACHE_DIR/
   done
 bpwatch stop dump_cache
+
+# ### Fin.
+bpwatch start appdir_commit
+  deep-mv $BUILD_DIR $ORIG_BUILD_DIR
+bpwatch stop appdir_commit
+
+bpwatch start anvil_appdir_commit
+  if [ "$SLUG_ID" ]; then
+    deep-mv $TMP_APP_DIR $APP_DIR
+  fi
+
+bpwatch stop anvil_appdir_commit
+bpwatch stop compile