diff --git a/indexedDb/impl/dm/implementation.go b/indexedDb/impl/dm/implementation.go
index 9551f7bad49d4bc19c32c6eee17543260661494d..6fa301bd5be515898cb6d8a18ec4b67a348d7df5 100644
--- a/indexedDb/impl/dm/implementation.go
+++ b/indexedDb/impl/dm/implementation.go
@@ -41,15 +41,16 @@ type wasmModel struct {
 
 // joinConversation is used for joining new conversations.
 func (w *wasmModel) joinConversation(nickname string,
-	pubKey ed25519.PublicKey, dmToken uint32) error {
+	pubKey ed25519.PublicKey, dmToken uint32, codeset uint8) error {
 	parentErr := errors.New("failed to joinConversation")
 
 	// Build object
 	newConvo := Conversation{
-		Pubkey:   pubKey,
-		Nickname: nickname,
-		Token:    dmToken,
-		Blocked:  false,
+		Pubkey:         pubKey,
+		Nickname:       nickname,
+		Token:          dmToken,
+		CodesetVersion: codeset,
+		Blocked:        false,
 	}
 
 	// Convert to jsObject
@@ -105,7 +106,8 @@ func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte,
 	_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
 	if err != nil {
 		if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
-			err = w.joinConversation(nickname, pubKey, dmToken)
+			err = w.joinConversation(nickname, pubKey, dmToken,
+				codeset)
 			if err != nil {
 				jww.ERROR.Printf("[DM indexedDB] %+v", err)
 				return 0
@@ -154,7 +156,8 @@ func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string,
 	_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
 	if err != nil {
 		if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
-			err = w.joinConversation(nickname, pubKey, dmToken)
+			err = w.joinConversation(nickname, pubKey, dmToken,
+				codeset)
 			if err != nil {
 				jww.ERROR.Printf("[DM indexedDB] %+v", err)
 				return 0
@@ -206,7 +209,8 @@ func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname,
 	_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
 	if err != nil {
 		if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
-			err = w.joinConversation(nickname, pubKey, dmToken)
+			err = w.joinConversation(nickname, pubKey, dmToken,
+				codeset)
 			if err != nil {
 				jww.ERROR.Printf("[DM indexedDB] %+v", err)
 				return 0
@@ -258,7 +262,8 @@ func (w *wasmModel) ReceiveReaction(messageID, _ message.ID, nickname,
 	_, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey))
 	if err != nil {
 		if strings.Contains(err.Error(), impl.ErrDoesNotExist) {
-			err = w.joinConversation(nickname, pubKey, dmToken)
+			err = w.joinConversation(nickname, pubKey, dmToken,
+				codeset)
 			if err != nil {
 				jww.ERROR.Printf("[DM indexedDB] %+v", err)
 				return 0
diff --git a/indexedDb/impl/dm/model.go b/indexedDb/impl/dm/model.go
index b4cfdcb6011bb57078fc0dbf8e3f0a3824833ac7..c77185755ccc66709e73e9a0b7d729d8a4958fbd 100644
--- a/indexedDb/impl/dm/model.go
+++ b/indexedDb/impl/dm/model.go
@@ -57,8 +57,9 @@ type Message struct {
 // message exchange between two recipients.
 // A Conversation has many Message.
 type Conversation struct {
-	Pubkey   []byte `json:"pub_key"` // Matches convoPkeyName
-	Nickname string `json:"nickname"`
-	Token    uint32 `json:"token"`
-	Blocked  bool   `json:"blocked"`
+	Pubkey         []byte `json:"pub_key"` // Matches convoPkeyName
+	Nickname       string `json:"nickname"`
+	Token          uint32 `json:"token"`
+	CodesetVersion uint8  `json:"codeset_version"`
+	Blocked        bool   `json:"blocked"`
 }