diff --git a/dm/interfaces.go b/dm/interfaces.go
index 7f8d5e2dd808792bcdcf219dbc91459348350d01..deb6de98c1a469532e60f852d621739132096c97 100644
--- a/dm/interfaces.go
+++ b/dm/interfaces.go
@@ -127,7 +127,7 @@ type EventModel interface {
 	Receive(messageID cryptoMessage.ID,
 		nickname string, text []byte,
 		partnerPubKey, senderPubKey ed25519.PublicKey,
-		dmToken uint32,
+		partnerToken uint32,
 		codeset uint8, timestamp time.Time,
 		round rounds.Round, mType MessageType, status Status) uint64
 
@@ -148,7 +148,7 @@ type EventModel interface {
 	ReceiveText(messageID cryptoMessage.ID,
 		nickname, text string,
 		partnerPubKey, senderPubKey ed25519.PublicKey,
-		dmToken uint32,
+		partnerToken uint32,
 		codeset uint8, timestamp time.Time,
 		round rounds.Round, status Status) uint64
 
@@ -173,7 +173,7 @@ type EventModel interface {
 	ReceiveReply(messageID cryptoMessage.ID,
 		reactionTo cryptoMessage.ID, nickname, text string,
 		partnerPubKey, senderPubKey ed25519.PublicKey,
-		dmToken uint32, codeset uint8,
+		partnerToken uint32, codeset uint8,
 		timestamp time.Time, round rounds.Round,
 		status Status) uint64
 
@@ -198,7 +198,7 @@ type EventModel interface {
 	ReceiveReaction(messageID cryptoMessage.ID,
 		reactionTo cryptoMessage.ID, nickname, reaction string,
 		partnerPubKey, senderPubKey ed25519.PublicKey,
-		dmToken uint32, codeset uint8,
+		partnerToken uint32, codeset uint8,
 		timestamp time.Time, round rounds.Round,
 		status Status) uint64
 
diff --git a/dm/receiver.go b/dm/receiver.go
index be677a00fe0abfc3f36f0aa9d346f73762cd8c06..f0d8189275d91b5c3c07fd547c170e7ee2d46e3d 100644
--- a/dm/receiver.go
+++ b/dm/receiver.go
@@ -117,12 +117,15 @@ func (dp *dmProcessor) Process(msg format.Message,
 		return
 	}
 
+	// partner Token is the sender Token
+	partnerToken := senderToken
+
 	// Process the receivedMessage. This is already in an instanced event;
 	// no new thread is needed.
 	// Note that in the non-self send case the partner key and sender
 	// key are the same. This is how the UI differentiates between the two.
 	uuid, err := dp.r.receiveMessage(msgID, messageType, directMsg.Nickname,
-		directMsg.Payload, senderToken,
+		directMsg.Payload, partnerToken,
 		*pubSigningKey, *pubSigningKey, ts, receptionID,
 		round, Received)
 	if err != nil {
@@ -153,7 +156,6 @@ func (sp *selfProcessor) Process(msg format.Message,
 		return
 	}
 	senderPublicKey := sp.r.c.publicKey
-	senderToken := sp.r.c.myToken
 
 	directMsg := &DirectMessage{}
 	if err := proto.Unmarshal(payload, directMsg); err != nil {
@@ -223,7 +225,7 @@ func (sp *selfProcessor) Process(msg format.Message,
 	// Process the receivedMessage. This is already in an instanced event;
 	// no new thread is needed.
 	uuid, err := sp.r.receiveMessage(msgID, messageType, directMsg.Nickname,
-		directMsg.Payload, senderToken,
+		directMsg.Payload, partnerToken,
 		*partnerPubKey, *pubSigningKey, ts, receptionID,
 		round, Received)
 	if err != nil {
@@ -245,27 +247,27 @@ func (r *receiver) GetProcessor() *dmProcessor {
 // receiveMessage attempts to parse the message and calls the appropriate
 // receiver function.
 func (r *receiver) receiveMessage(msgID message.ID, messageType MessageType,
-	nick string, plaintext []byte, dmToken uint32,
+	nick string, plaintext []byte, partnerDMToken uint32,
 	partnerPubKey, senderPubKey ed25519.PublicKey, ts time.Time,
 	_ receptionID.EphemeralIdentity, round rounds.Round,
 	status Status) (uint64, error) {
 	switch messageType {
 	case TextType:
 		return r.receiveTextMessage(msgID, messageType,
-			nick, plaintext, dmToken, partnerPubKey, senderPubKey,
-			0, ts, round, status)
+			nick, plaintext, partnerDMToken, partnerPubKey,
+			senderPubKey, 0, ts, round, status)
 	case ReplyType:
 		return r.receiveTextMessage(msgID, messageType,
-			nick, plaintext, dmToken, partnerPubKey, senderPubKey,
-			0, ts, round, status)
+			nick, plaintext, partnerDMToken, partnerPubKey,
+			senderPubKey, 0, ts, round, status)
 	case ReactionType:
 		return r.receiveReaction(msgID, messageType,
-			nick, plaintext, dmToken, partnerPubKey, senderPubKey,
-			0, ts, round, status)
+			nick, plaintext, partnerDMToken, partnerPubKey,
+			senderPubKey, 0, ts, round, status)
 	default:
 		return r.api.Receive(msgID, nick, plaintext,
 			partnerPubKey, senderPubKey,
-			dmToken, 0, ts, round,
+			partnerDMToken, 0, ts, round,
 			messageType, status), nil
 	}
 }