diff --git a/pressure-vessel-wrap b/pressure-vessel-wrap
index 0b531a29188980e54c4b13cbdf2c115279c7e9e1..f3a8eeb0f23e9a448f9ccadd537d44a6de92e1f7 100755
--- a/pressure-vessel-wrap
+++ b/pressure-vessel-wrap
@@ -252,6 +252,16 @@ if [ -n "$verbose" ]; then
     env | sed -e 's/^/\t/' >&2
 fi
 
+if [ -n "$interactive" ]; then
+    exec </dev/tty
+    exec >/dev/tty
+    exec 2>/dev/tty
+    echo "$me: Starting interactive shell (original command is in \"\$@\")">&2
+    wrapped_command=(bash -i -s "$@")
+else
+    wrapped_command=("$@")
+fi
+
 if [ -z "$BWRAP" ] || ! "$BWRAP" --bind / / true; then
     echo "$me: cannot find bwrap or it doesn't work, falling back to executing '$*' directly" >&2
 
@@ -269,7 +279,7 @@ if [ -z "$BWRAP" ] || ! "$BWRAP" --bind / / true; then
         unset LD_LIBRARY_PATH
     fi
 
-    exec "$@"
+    exec "${wrapped_command[@]}"
 fi
 
 if "$BWRAP" --help | grep -F '[--]' 2>/dev/null; then
@@ -294,16 +304,6 @@ else
     esac
 fi
 
-if [ -n "$interactive" ]; then
-    exec </dev/tty
-    exec >/dev/tty
-    exec 2>/dev/tty
-    echo "$me: Starting interactive shell (original command is in \"\$@\")">&2
-    wrapped_command=(bash -i -s "$@")
-else
-    wrapped_command=("$@")
-fi
-
 if [ -z "$fake_home" ]; then
     if [ -n "${SteamAppId:-}" ]; then
         fake_home="$HOME/.var/app/com.steampowered.App$SteamAppId"