qa.sh: "set -e" inside "|| exit 1"-ed subshell did not have any effect

http://unix.stackexchange.com/questions/65532/why-does-set-e-not-work-inside/65564#65564
diff --git a/expat/qa.sh b/expat/qa.sh
index e275021..1c7f3f6 100755
--- a/expat/qa.sh
+++ b/expat/qa.sh
@@ -97,7 +97,8 @@
             RUN "${MAKE}" check run-xmltest
             ;;
         esac
-    ) || exit 1
+    )
+    [[ $? -ne 0 ]] && exit 1
 
     case "${mode}" in
     coverage)