diff --git a/chat-window-component.html b/chat-window-component.html
index 4793640a01e329b3d9ea2792973b36cf2845ae56..5b724c713f4cf5de236b96ff24b8650059cbd971 100644
--- a/chat-window-component.html
+++ b/chat-window-component.html
@@ -33,10 +33,8 @@
 
     initConverse(shadowRoot) {
 
-      const component = document.querySelector('hd-chat-window');
-
       window.addEventListener("converse-loaded", function(event) {
-
+        const component = document.querySelector('hd-chat-window');
         converse.initialize({
             'debug': (component.dataset.debug === "true"),
             'root': shadowRoot,
@@ -51,5 +49,7 @@
       });
     }
   }
-  window.customElements.define("hd-chat-window", ChatWindow);
+  window.addEventListener('WebComponentsReady', function () {
+    window.customElements.define("hd-chat-window", ChatWindow);
+  });
 </script>
diff --git a/index.html b/index.html
index 880393e3024f90067c58a56a140c624e1f18d60e..cd663b1b49914107fa78fd7bdacf971b862b55ea 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
 <html>
   <head>
     <meta charset="UTF-8">
-    <script src="node_modules/webcomponentsjs/full.js"></script>
+    <script src="node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
     <link rel="import" href="chat-window-component.html">
     <title>XMPP chat</title>
     <style>
diff --git a/package-lock.json b/package-lock.json
index 79e2a224863c4bbf347a1ca8f5c9a54db0507af2..9b7d0947a45f3b6dd5d63237b01e1f69499205f9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,6 +4,11 @@
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
+    "@webcomponents/webcomponentsjs": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-1.2.0.tgz",
+      "integrity": "sha512-P9JWydfpBR+CK12UwtBaoD/lYF3PR9XBArAWk5J9nfPaJwA3OUox4StZmyFSVDLsvpFq5HsEtxU/OdHAlAWPnw=="
+    },
     "async": {
       "version": "1.5.2",
       "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
@@ -17,7 +22,7 @@
       "dev": true
     },
     "converse.js": {
-      "version": "github:conversejs/converse.js#59a72efe1b3545866f82dd80b825e3a92a85e48c",
+      "version": "github:conversejs/converse.js#e487fe4e54f91fd4f8c6999cd03bd399995be5ba",
       "dev": true,
       "requires": {
         "npm": "5.8.0"
@@ -4563,11 +4568,6 @@
       "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=",
       "dev": true
     },
-    "webcomponentsjs": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/webcomponentsjs/-/webcomponentsjs-1.0.2.tgz",
-      "integrity": "sha1-sCiRTFeaYdgUSRPHyUws9zuV/Gk="
-    },
     "wordwrap": {
       "version": "0.0.3",
       "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
diff --git a/package.json b/package.json
index 978a0a2e51681a14d89d9d9484ac775d4f502f31..45c85b36ef4faafb6d3868c4b262f9a199336368 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "description": "XMPP Chat Web Component",
   "main": "index.html",
   "dependencies": {
-    "webcomponentsjs": "^1.0.2"
+    "@webcomponents/webcomponentsjs": "^1.2.0"
   },
   "devDependencies": {
     "converse.js": "conversejs/converse.js",