diff --git a/sib-chat.js b/sib-chat.js
index e2c75cd3e64ba92e3e4e89742414b26a525cdd22..279821d0ac68532116bfece21f6e00efa710e599 100644
--- a/sib-chat.js
+++ b/sib-chat.js
@@ -112,7 +112,8 @@ export const SibChat = {
         jid = jid.toLowerCase();
         this._converse.root = root;
 
-        const converse_el = [...document.querySelectorAll('sib-chat')]
+        // Get the current used sib-chat
+        const converse_el = Array.from(document.querySelectorAll('sib-chat'))
           .map(el => el.shadowRoot.getElementById('conversejs'))
           .filter(el => el)
           .pop();
@@ -140,7 +141,7 @@ export const SibChat = {
           this._converse.api.chats.open(jid);
         }
       }
-    })
+    });
     // Initialize change change plugin
     converse.plugins.add('conversejs-changechat', converse_sib.service.plugins.sibChat);
 
@@ -151,6 +152,24 @@ export const SibChat = {
       }
     });
 
+    // Initialize deferred resolution plugin
+    converse.plugins.add('conversejs-sib-focused', {
+      initialize() {
+        this._converse.api.listen.on('chatBoxFocused', function() {
+          // Get the currently used sib-chat & send read event of
+          const resource = Array.from(document.querySelectorAll('sib-chat'))
+            .filter(el => {return el.shadowRoot.getElementById('conversejs')})
+            .pop()
+            ._component.resource;
+          window.dispatchEvent(new CustomEvent('read', {
+            detail: {
+              resource: resource
+            }
+          }));
+        });
+      }
+    });
+
     let user = await document.querySelector('sib-auth').getUser();
     user = await store.get(user);
 
@@ -208,7 +227,7 @@ export const SibChat = {
         fileupload: false,
         toggle_occupants: false
       },
-      'whitelisted_plugins': ['conversejs-sib-connected', 'conversejs-changechat'],
+      'whitelisted_plugins': ['conversejs-sib-connected', 'conversejs-sib-focused', 'conversejs-changechat'],
     });
 
     converse_sib.loaded_deferred.resolve();