diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxOwnerSession.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxOwnerSession.java
index 3bb2d2edc0e4ed4644d90b0d3ff65cbb74e4e2d8..505aa71f81f6a7df1b7391bad4c7ab0b08524ceb 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxOwnerSession.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/MailboxOwnerSession.java
@@ -78,7 +78,7 @@ public class MailboxOwnerSession extends AbstractMailboxSession {
 		while (nextStream != null) {
 			// Send TAKE request and delete stream if request was successfull
 			MailboxRequestTake req =
-					new MailboxRequestTake(nextStream.getStream());
+					new MailboxRequestTake(nextStream.getContactId(), nextStream.getStream());
 			mailboxProtocol.writeRequest(req);
 
 			if (req.awaitAndGetResponse())
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/PrivateMailboxSession.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/PrivateMailboxSession.java
index a43c6601d29f3740f20f8d6464685298abea3fed..6ef03aebdd7c74037eb9739e3898e4a4dfbb9189 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/PrivateMailboxSession.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/sessions/PrivateMailboxSession.java
@@ -47,7 +47,8 @@ public class PrivateMailboxSession extends AbstractMailboxSession {
 			MailboxProtocol mailboxProtocol, int transportMaxLatency,
 			int transportMaxIdleTime, DatabaseComponent db) {
 
-		super(ioExecutor, db, keyManager, syncSessionFactory, streamWriterFactory,
+		super(ioExecutor, db, keyManager, syncSessionFactory,
+				streamWriterFactory,
 				streamReaderFactory, mailboxProtocol, transportMaxLatency,
 				transportMaxIdleTime, contactId);
 		this.syncSessionFactory = syncSessionFactory;
@@ -113,11 +114,13 @@ public class PrivateMailboxSession extends AbstractMailboxSession {
 			MailboxRequestTake takeRequest = (MailboxRequestTake) request;
 			InputStream in = new ByteArrayInputStream(
 					takeRequest.getEncryptedSyncStream());
-
 			try {
-
 				StreamContext ctx = readTag(in);
 
+				if (ctx.getContactId() != (takeRequest.getContactId()))
+					throw new ProtocolException(
+							"Stream does not match expected contactId");
+
 				InputStream reader =
 						streamReaderFactory.createStreamReader(in, ctx);