diff --git a/packages/language-select/src/demo.js b/packages/language-select/src/demo.js
index 6926c4fe33017d61d4d65b79d79086ae2499f59a..dc7b964257e3b86c6f0a67b746d4083f701cd5c4 100644
--- a/packages/language-select/src/demo.js
+++ b/packages/language-select/src/demo.js
@@ -6,6 +6,7 @@ class LanguageSelectDemo extends LitElement {
     constructor() {
         super();
         this.lang = 'de';
+        this.handleChange =  this.handleChange.bind(this);
     }
 
     static get properties() {
@@ -20,11 +21,11 @@ class LanguageSelectDemo extends LitElement {
 
     connectedCallback() {
         super.connectedCallback();
-        window.addEventListener('vpu-language-changed', this.handleChange.bind(this));
+        window.addEventListener('vpu-language-changed', this.handleChange);
     }
 
     disconnectedCallback() {
-        windows.removeEventListener('vpu-language-changed', this.handleChange.bind(this));
+        window.removeEventListener('vpu-language-changed', this.handleChange);
         super.disconnectedCallback();
     }
 
diff --git a/packages/language-select/test/unit.js b/packages/language-select/test/unit.js
index 37bd3c1ab3184453251ad667e9290712379a1946..ea01a63ee3164b6806bcc5df26204f9e53a28a43 100644
--- a/packages/language-select/test/unit.js
+++ b/packages/language-select/test/unit.js
@@ -1,4 +1,5 @@
-import '../src/language-select';
+import '../src/language-select.js';
+import '../src/demo.js';
 
 describe('vpu-language-select basics', () => {
   let node;
@@ -17,3 +18,21 @@ describe('vpu-language-select basics', () => {
       expect(node).to.have.property('shadowRoot');
   });
 });
+
+describe('vpu-language-select demo', () => {
+  let node;
+
+  beforeEach(async () => {
+    node = document.createElement('vpu-language-select-demo');
+    document.body.appendChild(node);
+    await node.updateComplete;
+  });
+
+  afterEach(() => {
+    node.remove();
+  });
+
+  it('should render', () => {
+      expect(node).to.have.property('shadowRoot');
+  });
+});