diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java
index 089526ef206a9cca642300febc02a42cdb579d41..3542593c34c5ab1fd3e3f0c3485007a6d35529db 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocol.java
@@ -44,8 +44,7 @@ public class MailboxProtocol implements Runnable {
 			new LinkedHashMap<>();
 
 	private volatile AtomicBoolean stopped = new AtomicBoolean(false);
-	private volatile Thread writingThread;
-	private volatile Thread readingThread;
+	private volatile Thread writingThread = null;
 
 
 	public MailboxProtocol(Executor ioExecutor, BdfWriter mailboxBdfWriter,
@@ -105,18 +104,22 @@ public class MailboxProtocol implements Runnable {
 	 */
 	@Override
 	public void run() {
+		ioExecutor.execute(() -> readIncomingMessages());
 		writeOutgoingMessages();
 	}
 
 	/**
 	 * Register a Handler for a specific request type.
 	 * <p>
-	 * NOTE: {@link this#enableRequestHandling()} MUST be called after all handlers
+	 * NOTE: {@link this#run()} MUST be called AFTER all handlers
 	 * have been registered!
 	 *
 	 * @param handler
 	 */
 	public void registerRequestHandler(MailboxRequestHandler handler) {
+		if (writingThread != null)
+			throw new RuntimeException(
+					"Trying to register request handler after run call!");
 		if (requestHandlers.containsKey(handler.getType()))
 			throw new RuntimeException(
 					"Handler for " + handler.getType().toString() +
@@ -124,13 +127,6 @@ public class MailboxProtocol implements Runnable {
 		requestHandlers.put(handler.getType(), handler);
 	}
 
-	/**
-	 * Request handling once all request handlers are registered
-	 */
-	public void enableRequestHandling() {
-		ioExecutor.execute(() -> readIncomingMessages());
-	}
-
 	private void readIncomingMessages() {
 		BdfList bdfMsg;
 
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java
index f9de586ba03f86fc103f881fd00bab34a70b7c0e..c7072d8f022e0cb4832e57ffa33a3210c9118655 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java
@@ -108,7 +108,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		MailboxRequest req =
 				new MailboxRequestStore(new ContactId(123), "test".getBytes());
@@ -149,8 +148,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
-
 		// Test Error Response
 		MailboxRequestTake req =
 				new MailboxRequestTake("Test".getBytes());
@@ -186,7 +183,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 
@@ -217,7 +213,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 		pipedOS.close();
@@ -251,7 +246,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 		assertEquals(true, req.awaitAndGetResponse());
@@ -286,7 +280,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);
 		assertEquals(true, req.awaitAndGetResponse());
@@ -321,7 +314,6 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase {
 		});
 
 		ioExecutor.execute(mailboxProtocol);
-		mailboxProtocol.enableRequestHandling();
 
 		mailboxProtocol.writeRequest(req);