Fixed more set -e issues.
diff --git a/shflags_public_test.sh b/shflags_public_test.sh
index 683b25a..ad6eab1 100755
--- a/shflags_public_test.sh
+++ b/shflags_public_test.sh
@@ -30,7 +30,9 @@
 }
 
 _testHelp() {
-  flags_getoptIsEnh || return "${SHUNIT_TRUE}"
+  if ! flags_getoptIsEnh; then
+    return
+  fi
 
   flag=$1
 
@@ -79,7 +81,9 @@
 }
 
 testStandardHelpOutput() {
-  flags_getoptIsStd || startSkipping
+  if ! flags_getoptIsStd; then
+   startSkipping
+ fi
 
   DEFINE_boolean test_bool false 'test boolean' b
   DEFINE_integer test_int 0 'test integer' i
@@ -111,21 +115,26 @@
   (
     _flags_columns() { mock_flags_columns; }
     FLAGS_HELP=${help};
-    FLAGS -h >"${stdoutF}" 2>"${stderrF}"
-    echo $? >"${returnF}"
+    # Wrap FLAGS call in if/then/else so 'set -e' works properly.
+    if FLAGS -h >"${stdoutF}" 2>"${stderrF}"; then
+      rtrn=$?
+    else
+      rtrn=$?
+    fi
+    echo "${rtrn}" >"${returnF}"
   )
-  assertFalse \
-      'a call for help should return a non-zero exit code.' \
-      "$(th_queryReturn)"
+  assertFalse 'a call for help should return a non-zero exit code.' "$(th_queryReturn)"
 
-  diff "${expectedF}" "${stderrF}" >/dev/null
-  r3turn=$?
-  assertTrue 'unexpected help output' ${r3turn}
-  th_showOutput ${r3turn} "${stdoutF}" "${stderrF}"
+  if ! diff "${expectedF}" "${stderrF}" >/dev/null; then
+    fail 'unexpected help output'
+    th_showOutput
+  fi
 }
 
 testEnhancedHelpOutput() {
-  flags_getoptIsEnh || startSkipping
+  if ! flags_getoptIsEnh; then
+    startSkipping
+  fi
 
   # shellcheck disable=SC2034
   DEFINE_boolean test_bool false 'test boolean' b
@@ -162,22 +171,27 @@
   (
     _flags_columns() { mock_flags_columns; }
     # shellcheck disable=SC2034
-    FLAGS_HELP=${help};
-    FLAGS -h >"${stdoutF}" 2>"${stderrF}"
-    echo $? >"${returnF}"
+    FLAGS_HELP=${help}
+    # Wrap FLAGS call in if/then/else so 'set -e' works properly.
+    if FLAGS -h >"${stdoutF}" 2>"${stderrF}"; then
+      rtrn=$?
+    else
+      rtrn=$?
+    fi
+    echo "${rtrn}" >"${returnF}"
   )
-  assertFalse \
-      'a call for help should return a non-zero exit code.' \
-      "$(th_queryReturn)"
+  assertFalse 'a call for help should return a non-zero exit code.' "$(th_queryReturn)"
 
-  diff "${expectedF}" "${stderrF}" >/dev/null
-  differed=$?
-  assertTrue 'unexpected help output' ${differed}
-  th_showOutput ${differed} "${stdoutF}" "${stderrF}"
+  if ! diff "${expectedF}" "${stderrF}" >/dev/null; then
+    fail 'unexpected help output'
+    th_showOutput
+  fi
 }
 
 testNoHelp() {
-  flags_getoptIsEnh || startSkipping
+  if ! flags_getoptIsEnh; then
+    startSkipping
+  fi
 
   ( FLAGS --nohelp >"${stdoutF}" 2>"${stderrF}" )
   r3turn=$?
@@ -205,7 +219,7 @@
   # shellcheck disable=SC2034
   DEFINE_boolean 'force' false '' f
 
-  testHelp
+  testHelp && return
 }
 
 oneTimeSetUp() {