diff --git a/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike b/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike
index 12e4d8b3f760e3e222e224fb74c0fd5663ee4d52..6e790430f5a7d7bc70601542a14ca16b9fa2fd88 100755
--- a/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike
+++ b/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike
@@ -268,7 +268,11 @@ class Watchdog
       WATCHDOG_MSG ("Error reading stdin pipe: %s\n",
 		    strerror (stdin->errno()));
     }
-    _exit(EXIT_OK);
+    if (!timeout_phase) {
+      _exit(EXIT_OK);
+    } else {
+      _exit(EXIT_WATCHDOG_FAILED);
+    }
   }
 
   void check_parent_pid()
@@ -309,7 +313,6 @@ class Watchdog
 	  }
 	  WATCHDOG_MSG ("%s: Sending SIGABRT to %d.\n", ts, watched_pid);
 	  kill(watched_pid, signum("SIGABRT"));
-	  stdin->close();
 	  timeout_phase = 1;
 	  call_out (timeout, 60);
 	  break;