diff --git a/.orchestra/support/extract.sh b/.orchestra/support/extract.sh
index aa099c19dd579a6688b0e7e133976ae05c264a60..bbf96866e8cd27fe76f2259419d1a12ce42f1ad2 100755
--- a/.orchestra/support/extract.sh
+++ b/.orchestra/support/extract.sh
@@ -41,7 +41,8 @@ if [ -z "${ARCHIVE_FILENAME}" ]; then
 fi
 
 TMP_ARCHIVE_FILENAME="${ARCHIVE_FILENAME}.tmp"
-trap 'rm ${SRC_ARCHIVE_DIR}/${TMP_ARCHIVE_FILENAME} || true' INT QUIT TERM EXIT
+TMP_ARCHIVE_PATH="${SRC_ARCHIVE_DIR}/${TMP_ARCHIVE_FILENAME}"
+trap 'if [ -e "$TMP_ARCHIVE_PATH" ]; then rm "$TMP_ARCHIVE_PATH"; fi' INT QUIT TERM EXIT
 
 if [ ! -e "${SRC_ARCHIVE_DIR}/${ARCHIVE_FILENAME}" ]; then
     echo "Downloading source archive to ${SRC_ARCHIVE_DIR}/${ARCHIVE_FILENAME}"