diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxManager.java
index aa11967a63ac3a13c1f4e30acb226e6a82900248..39797cbc4cf165e93cc84b9bf096022225f0dc4e 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxManager.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxManager.java
@@ -10,6 +10,7 @@ import org.briarproject.bramble.api.transport.StreamContext;
 public interface MailboxManager {
 
 	void handleOutgoingContactMailboxConnection(ContactId contactId,
+			ContactId mailboxId,
 			DuplexTransportConnection connection, TransportId transportId);
 
 	void handleOutgoingPrivateMailboxConnection(ContactId contactId,
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java
index 8c9c76223536826f12be5908d6ec1e32b23a612e..26405cfd2dc11ff2594a88a546c8fd10bd2de7af 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java
@@ -74,10 +74,11 @@ public class MailboxManagerImpl implements MailboxManager {
 
 	@Override
 	public void handleOutgoingContactMailboxConnection(ContactId contactId,
+			ContactId mailboxId,
 			DuplexTransportConnection connection, TransportId transportId) {
 		ioExecutor.execute(
 				new ManageMailboxConnection(transportId, connection,
-						ContactType.CONTACT_MAILBOX, contactId));
+						ContactType.CONTACT_MAILBOX, contactId, mailboxId));
 	}
 
 	@Override
@@ -88,7 +89,7 @@ public class MailboxManagerImpl implements MailboxManager {
 		}
 		ioExecutor.execute(
 				new ManageMailboxConnection(transportId, connection,
-						ContactType.PRIVATE_MAILBOX, contactId));
+						ContactType.PRIVATE_MAILBOX, contactId, null));
 	}
 
 	@Override
@@ -104,7 +105,7 @@ public class MailboxManagerImpl implements MailboxManager {
 	@Override
 	public void handleInomingOwnerContactConnection(StreamContext ctx,
 			TransportId transportId, TransportConnectionReader reader,
-			TransportConnectionWriter writer){
+			TransportConnectionWriter writer) {
 		ioExecutor.execute(
 				new ManageMailboxConnection(ctx, transportId, reader, writer,
 						ContactType.MAILBOX_CONTACT)
@@ -116,11 +117,11 @@ public class MailboxManagerImpl implements MailboxManager {
 		if (null == privateMailboxSession)
 			return;
 		ioExecutor.execute(
-				() -> privateMailboxSession.handleContactWithoutPrivateMailbox(mailboxInfo));
+				() -> privateMailboxSession
+						.handleContactWithoutPrivateMailbox(mailboxInfo));
 	}
 
 
-
 	private class ManageMailboxConnection implements Runnable {
 		private boolean incoming;
 
@@ -130,6 +131,7 @@ public class MailboxManagerImpl implements MailboxManager {
 		private final TransportConnectionReader reader;
 
 		private final ContactId contactId;
+		private final ContactId mailboxId;
 		private BdfWriter mailboxBdfWriter;
 		private BdfReader mailboxBdfReader;
 		private StreamContext incomingCtx = null;
@@ -144,6 +146,7 @@ public class MailboxManagerImpl implements MailboxManager {
 			incoming = true;
 			incomingCtx = ctx;
 			contactId = ctx.getContactId();
+			mailboxId = ctx.getContactId();
 			this.transportId = transportId;
 			this.contactType = contactType;
 			this.writer = writer;
@@ -155,10 +158,12 @@ public class MailboxManagerImpl implements MailboxManager {
 		 */
 		public ManageMailboxConnection(TransportId transportId,
 				DuplexTransportConnection connection,
-				ContactType contactType, ContactId contactId) {
+				ContactType contactType, ContactId contactId,
+				ContactId mailboxId) {
 			this.transportId = transportId;
 			this.incoming = false;
 			this.contactId = contactId;
+			this.mailboxId = mailboxId;
 			this.contactType = contactType;
 			writer = connection.getWriter();
 			reader = connection.getReader();
@@ -217,7 +222,7 @@ public class MailboxManagerImpl implements MailboxManager {
 				throws DbException, IOException {
 			// Allocate a stream context
 			StreamContext ctx =
-					keyManager.getStreamContext(contactId, transportId);
+					keyManager.getStreamContext(mailboxId, transportId);
 
 			if (ctx == null)
 				throw new IOException("Unable to allocate stream context");
@@ -249,7 +254,7 @@ public class MailboxManagerImpl implements MailboxManager {
 				throw new IOException(
 						"Unrecognised tag for returning stream");
 
-			if (!incomingCtx.getContactId().equals(contactId))
+			if (!incomingCtx.getContactId().equals(mailboxId))
 				throw new IOException(
 						"ContactId for Incoming stream does not match expected ContactId");
 
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java
index d769f4af29217b02c411a3bd688c6f3612dffc63..e0c67f42ee29d8122da6df72c140e103ce30e3d3 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java
@@ -264,7 +264,7 @@ public class MailboxServiceImpl implements MailboxService, EventListener {
 						LOG.info("Contact mailbox connected");
 
 					mailboxManager.handleOutgoingContactMailboxConnection(
-							mailboxInfo.getContactId(), conn, transportId);
+							mailboxInfo.getContactId(), mailboxInfo.getMailboxId(), conn, transportId);
 				}
 			}
 		}
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/FeedableSyncInputStream.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/FeedableSyncInputStream.java
index 7c5249d0ce98b9fc7ddb043ee89c0d87ca3968ea..2b7cfc489b4959f5aef7a94170e0fd16ecad55f9 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/FeedableSyncInputStream.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/FeedableSyncInputStream.java
@@ -27,7 +27,7 @@ public class FeedableSyncInputStream extends InputStream {
 			}
 		}
 
-		return activeBuffer[activeBufferPointer++];
+		return (int) activeBuffer[activeBufferPointer++] & 0xFF;
 	}
 
 	private boolean hasBytes() {
@@ -53,7 +53,6 @@ public class FeedableSyncInputStream extends InputStream {
 			throw new EOFException();
 
 		LOG.info("Feeding Buffer: " + buffer.length);
-
 		os.write(buffer);
 		this.notifyAll();
 	}
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxSyncRequestWriter.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxSyncRequestWriter.java
index a75bfa9c281dac643ce3f000a379be7eb5ecdeab..72ad453728e595c17fc0ad27a1690bd829b3f70d 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxSyncRequestWriter.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxSyncRequestWriter.java
@@ -7,7 +7,6 @@ import org.briarproject.bramble.mailbox.protocol.MailboxRequestSync;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Logger;
 
 class MailboxSyncRequestWriter extends OutputStream implements StreamWriter {
@@ -53,7 +52,7 @@ class MailboxSyncRequestWriter extends OutputStream implements StreamWriter {
 
 		// If a sync session flushes without data to write it indicates
 		// a keep alive
-		if (bufferOS.size() == 0){
+		if (bufferOS.size() == 0) {
 			mailboxProtocol.sendKeepAlive();
 			return;
 		}
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java
index bbf4bbd1bf9197c46d731db908b56628d2fbfe6d..5784cb37830c70d418bc9a649979a3bcf1c824d7 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/transport/TransportKeyManagerImpl.java
@@ -276,20 +276,6 @@ class TransportKeyManagerImpl implements TransportKeyManager {
 			throws DbException {
 		lock.lock();
 		try {
-			StringBuilder s = new StringBuilder();
-			for (Byte b : tag) {
-				s.append(String.format("%02x", b));
-			}
-			LOG.info(s.toString() + "\n---------------");
-			for (Map.Entry<Bytes, TagContext> entry : inContexts.entrySet()) {
-				if (entry.getValue().contactId.getInt() == 2) {
-					 s = new StringBuilder();
-					for (Byte b : entry.getKey().getBytes()) {
-						s.append(String.format("%02x", b));
-					}
-					LOG.info(s.toString());
-				}
-			}
 			// Look up the incoming keys for the tag
 			TagContext tagCtx = inContexts.remove(new Bytes(tag));
 			if (tagCtx == null) return null;