diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js
index c9dceb5982956b3f8771b4d074ea64cd14c8d869..15db44fdcc6612e573cb5dd2f934345aa5fbab80 100644
--- a/src/plugins/converse-rai.js
+++ b/src/plugins/converse-rai.js
@@ -96,10 +96,17 @@ converse.plugins.add('converse-rai', {
        *  message, even if it didn't include a `markable` element.
        */
       sendMarkerForMessage(msg, type = 'displayed', force = false) {
+        const _converse = this.__super__._converse;
         const { Strophe } = converse.env;
-        if (msg && (msg?.get('is_markable') || force)) {
+
+        // Markers should be sent for message with a stanza_id
+        const is_groupchat = this.get('type') === _converse.CHATROOMS_TYPE;
+        const by_jid = is_groupchat ? this.get('jid') : _converse.bare_jid;
+        const stanza_id = msg.get('stanza_id '.concat(by_jid));
+
+        if (msg && (msg?.get('is_markable') || force) && stanza_id) {
           const from_jid = Strophe.getBareJidFromJid(msg.get('from'));
-          this.sendMarker(from_jid, msg.get('msgid'), type, msg.get('type'));
+          this.sendMarker(from_jid, stanza_id, type, msg.get('type'));
         }
       },
     },