diff --git a/build-aux/run-test.sh.in b/build-aux/run-test.sh.in
index 3b58806e318a26d8f2cb0e604856bd1e97ba1cb7..325bb4819b1193ce494eac3df9520ef877ed1a38 100644
--- a/build-aux/run-test.sh.in
+++ b/build-aux/run-test.sh.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-## serial 1
+## serial 2
 
 set -eu
 
@@ -36,12 +36,12 @@ else
   test_out="test.out~$$"
   trap "rm -f $test_out" 0 1 2 3 15
   supp_path="$top_srcdir/run-test-valgrind.supp"
+  ret=0
   if test -r "$supp_path"; then
-    $VALGRIND -q $trace_children --error-exitcode=213 --leak-check=full --gen-suppressions=all --suppressions="$supp_path" --log-file=$test_out $noundef "$@"
+    $VALGRIND -q $trace_children --error-exitcode=213 --leak-check=full --gen-suppressions=all --suppressions="$supp_path" --log-file=$test_out $noundef "$@" || ret=$?
   else
-    $VALGRIND -q $trace_children --error-exitcode=213 --leak-check=full --gen-suppressions=all --log-file=$test_out $noundef "$@"
+    $VALGRIND -q $trace_children --error-exitcode=213 --leak-check=full --gen-suppressions=all --log-file=$test_out $noundef "$@" || ret=$?
   fi
-  ret=$?
   if test -s $test_out; then
     cat $test_out
     ret=1