diff --git a/prule/daemon/__main__.py b/prule/daemon/__main__.py
index cdea2b8f308c22bdee7786d061cf654e4b10a86f..98c6e8313194d82449b57e37ec347b4ec57bf0b0 100644
--- a/prule/daemon/__main__.py
+++ b/prule/daemon/__main__.py
@@ -659,7 +659,7 @@ class PruleThread(threading.Thread):
         if 'JOB_PROCESS_QUIET' not in config.config or config.config['JOB_PROCESS_QUIET'] == True:
             params += ["--quiet"]
         def preexec():
-            signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1])
+            signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1, signal.SIGPIPE])
         with self.stopCondition:
             if self.currentProcess == None:
                 self.currentProcess = subprocess.Popen(params, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=sys.stderr, preexec_fn = preexec)
@@ -981,7 +981,7 @@ class PruleThread(threading.Thread):
 if __name__ == "__main__":
 
     # block signals, so startup will not be interrupted
-    signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1])
+    signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1, signal.SIGPIPE])
 
     parser = argparse.ArgumentParser(
         prog='prule daemon',