diff --git a/receiver/src/receiver.cpp b/receiver/src/receiver.cpp
index 0cb9b6dc30c6c8ca771b2e303b33b8ee0b2b8232..bdcd0390cb62023e2750495f1b87ef08560ec1f9 100644
--- a/receiver/src/receiver.cpp
+++ b/receiver/src/receiver.cpp
@@ -1,5 +1,7 @@
 #include <iostream>
 #include <utility>
+#include <signal.h>
+#include <unistd.h>
 #include "receiver.h"
 #include "receiver_error.h"
 #include "connection.h"
@@ -32,6 +34,10 @@ void Receiver::Listen(std::string listener_address, Error* err, bool exit_after_
         return;
     }
 
+    if(!fork()) {
+        raise (SIGABRT);
+    }
+
     while(true) {
         ProcessConnections(err);
         if (exit_after_first_connection) break;