diff --git a/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike b/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike
index dc68b532d1df76e866328699d8868a7377d62f65..17dcbae454ad364018b303b8e87f7a9c0290521d 100755
--- a/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike
+++ b/lib/modules/Tools.pmod/Standalone.pmod/test_pike.pike
@@ -262,7 +262,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()
@@ -303,7 +307,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;