say "skipping test, network testing disabled by default"
        say "(define GIT_TEST_HTTPD to enable)"
        test_done
-       exit
 fi
 
 HTTPD_PARA=""
 then
        say "skipping test, no web server found at '$LIB_HTTPD_PATH'"
        test_done
-       exit
 fi
 
 HTTPD_VERSION=`$LIB_HTTPD_PATH -v | \
                then
                        say "skipping test, at least Apache version 2 is required"
                        test_done
-                       exit
                fi
 
                LIB_HTTPD_MODULE_PATH="$DEFAULT_HTTPD_MODULE_PATH"
 start_httpd() {
        prepare_httpd >&3 2>&4
 
-       trap 'stop_httpd; die' EXIT
+       trap 'code=$?; stop_httpd; (exit $code); die' EXIT
 
        "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
                -f "$TEST_PATH/apache.conf" $HTTPD_PARA \
                -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \
                >&3 2>&4
-       if ! test $? = 0; then
+       if test $? -ne 0
+       then
                say "skipping test, web server setup failed"
+               trap 'die' EXIT
                test_done
        fi
 }