diff --git a/components/net/sf/briar/protocol/BundleWriterImpl.java b/components/net/sf/briar/protocol/BundleWriterImpl.java
index ca4096d16eecc9eb20c553b9c118ae93292e395f..f8fb1a66aaa4a6be89fa589e355be6a119b761d7 100644
--- a/components/net/sf/briar/protocol/BundleWriterImpl.java
+++ b/components/net/sf/briar/protocol/BundleWriterImpl.java
@@ -69,10 +69,7 @@ class BundleWriterImpl implements BundleWriter {
 		// Write the data
 		writer.writeListStart();
 		// Bypass the writer and write each raw message directly
-		for(Raw message : messages) {
-			writer.writeUserDefinedTag(Tags.MESSAGE);
-			out.write(message.getBytes());
-		}
+		for(Raw message : messages) out.write(message.getBytes());
 		writer.writeListEnd();
 		// Stop digesting
 		out.on(false);
diff --git a/components/net/sf/briar/protocol/MessageEncoderImpl.java b/components/net/sf/briar/protocol/MessageEncoderImpl.java
index 339ece3b7631e5697046c7a880e723f09f98f596..2ab66d017d74bedf929a228d7e20f342846b8975 100644
--- a/components/net/sf/briar/protocol/MessageEncoderImpl.java
+++ b/components/net/sf/briar/protocol/MessageEncoderImpl.java
@@ -12,6 +12,7 @@ import net.sf.briar.api.protocol.GroupId;
 import net.sf.briar.api.protocol.Message;
 import net.sf.briar.api.protocol.MessageEncoder;
 import net.sf.briar.api.protocol.MessageId;
+import net.sf.briar.api.protocol.Tags;
 import net.sf.briar.api.serial.Writer;
 import net.sf.briar.api.serial.WriterFactory;
 
@@ -35,6 +36,7 @@ class MessageEncoderImpl implements MessageEncoder {
 		ByteArrayOutputStream out = new ByteArrayOutputStream();
 		Writer w = writerFactory.createWriter(out);
 		// Write the message
+		w.writeUserDefinedTag(Tags.MESSAGE);
 		parent.writeTo(w);
 		group.writeTo(w);
 		w.writeInt64(timestamp);