diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index 47202f6087a60ccba2bd929df603f5f3a681ece0..4faae0d2c9da5f0e79305be4c1adb219c3f351a3 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -55,13 +55,12 @@
 # avoids the need to come up with a user-friendly naming scheme for
 # spack dotfiles.
 ########################################################################
+arrtest[0]='test' || (echo 'Failure: arrays not supported in this version of bash.' && exit 2)
+
 function spack {
     # save raw arguments into an array before butchering them
-    args=()
-    for a in "$@"; do
-        # yup, this is awful, blame bash2 compat
-        args=("${args[@]}" "$a")
-    done
+    declare -a args=( "$@" )
+
     # accumulate initial flags for main spack command
     _sp_flags=""
     while [[ "$1" =~ ^- ]]; do