diff --git a/test/notmuch-test b/test/notmuch-test
index 738f8f6..b38c2c6 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -57,10 +57,13 @@ else
     TEST_TIMEOUT_CMD=""
 fi
 
+trap 'e=$?; kill $!; exit $e' HUP INT TERM
 # Run the tests
 for test in $TESTS; do
-    $TEST_TIMEOUT_CMD ./$test "$@"
+    $TEST_TIMEOUT_CMD ./$test "$@" &
+    wait $!
 done
+trap - HUP INT TERM
 
 # Report results
 ./aggregate-results.sh test-results/*

