diff --git a/io/collate.go b/io/collate.go
index 86ae0a5536154a03aef58ce6d1f2a9a61e2d131c..d16a91c9c9c472b3ac70ce3e0ee760659466c9a3 100644
--- a/io/collate.go
+++ b/io/collate.go
@@ -9,6 +9,7 @@ package io
 import (
 	"crypto/sha256"
 	"fmt"
+	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/client/globals"
 	"gitlab.com/elixxir/client/parse"
 	"gitlab.com/elixxir/primitives/format"
@@ -53,9 +54,11 @@ func (mb *Collator) AddMessage(message *format.Message,
 	// There's currently no mechanism for knowing who sent an unencrypted
 	// message, I think?
 	// Let's just try ZeroID for now...
-	sender := id.ZeroID
+	sender := id.NewUserFromBytes(message.GetMAC())
 	recipient := message.GetRecipient()
 
+	jww.ERROR.Printf("Sender: %v, Recipient: %v", sender, recipient)
+
 	partition, err := parse.ValidatePartition(payload)
 
 	if err == nil {
diff --git a/io/messaging.go b/io/messaging.go
index be44c450114e410adc3eb5d1fa3e9719ddcf33e9..4c4d64cd10aafc09f16b996d7754df2ddfa69f68 100644
--- a/io/messaging.go
+++ b/io/messaging.go
@@ -172,6 +172,7 @@ func (m *Messaging) send(session user.Session, topology *circuit.Circuit,
 		}
 		message.Contents.Set(padded)
 		e2e.SetUnencrypted(message)
+		message.SetMAC(session.GetCurrentUser().User.Bytes())
 	}
 	// CMIX Encryption
 	salt := cmix.NewSalt(csprng.Source(&csprng.SystemRNG{}), 32)