diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index d94b1b5..cc1d53b 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -91,10 +91,6 @@
 
     var vc = KorAP.vc;
     
-    document.addEventListener('vcChange', function (e) {
-      vc.checkStatActive(e.detail);
-      }, false);
-
     // Add vc name object
     if (input) {
       input.style.display = 'none';
diff --git a/dev/js/src/vc.js b/dev/js/src/vc.js
index 4bc5e13..fd67863 100644
--- a/dev/js/src/vc.js
+++ b/dev/js/src/vc.js
@@ -329,6 +329,11 @@
       // Add panel to display corpus statistic, ...
       this.addVcInfPanel();
       
+      //Adds EventListener for corpus changes
+      this._element.addEventListener('vcChange', function (e) {
+        that.checkStatActive(e.detail);
+      }, false);
+      
       return this._element;
     },
 
@@ -367,9 +372,10 @@
      */    
     update : function() {
       this._root.update();
-      var vcchevent = new CustomEvent('vcChange', {'detail':this});
-      document.dispatchEvent(vcchevent);
-      
+      if (KorAP.vc){
+        var vcchevent = new CustomEvent('vcChange', {'detail':this});
+        this.element().dispatchEvent(vcchevent);
+      };
       return this;
     },
     /**
diff --git a/dev/js/src/vc/doc.js b/dev/js/src/vc/doc.js
index 132c4a8..b012e1f 100644
--- a/dev/js/src/vc/doc.js
+++ b/dev/js/src/vc/doc.js
@@ -150,10 +150,8 @@
       };
       
       if(KorAP.vc){
-      //Replaced through Event
-      //KorAP.vc.checkGrayingStat(this); 
       var vcchevent = new CustomEvent('vcChange', {'detail':this});
-      document.dispatchEvent(vcchevent);
+      KorAP.vc.element().dispatchEvent(vcchevent);
       }
       
       return e;
diff --git a/dev/js/src/vc/docgroup.js b/dev/js/src/vc/docgroup.js
index 858e847..c73a325 100644
--- a/dev/js/src/vc/docgroup.js
+++ b/dev/js/src/vc/docgroup.js
@@ -211,7 +211,7 @@
       group.appendChild(op.element());
 
       var vcchevent = new CustomEvent('vcChange', {'detail':this});
-      document.dispatchEvent(vcchevent);
+      KorAP.vc.element().dispatchEvent(vcchevent);
       
       return this;
     },
diff --git a/dev/js/src/vc/docgroupref.js b/dev/js/src/vc/docgroupref.js
index f72e27a..9425fb3 100644
--- a/dev/js/src/vc/docgroupref.js
+++ b/dev/js/src/vc/docgroupref.js
@@ -111,7 +111,7 @@
       };  
      
       var vcchevent = new CustomEvent('vcChange', {'detail':this});
-      document.dispatchEvent(vcchevent);
+      KorAP.vc.element().dispatchEvent(vcchevent);
       
       return this.element();
     },
diff --git a/dev/js/src/view/corpstatv.js b/dev/js/src/view/corpstatv.js
index fa9a135..81c18cd 100644
--- a/dev/js/src/view/corpstatv.js
+++ b/dev/js/src/view/corpstatv.js
@@ -142,19 +142,19 @@
         var reloadspan = document.createElement('div');
         reloadspan.classList.add('reloadStatB'); 
         reloadspan.classList.add('button-group');
-        reloadspan.classList.add('button-panel');    
+        reloadspan.classList.add('button-panel');
         reloadb = reloadspan.addE('span');
         reloadb.classList.add('refresh');
           
-        var that = this;          
-        reloadb.addEventListener("click", function (e){    
+        var that = this;
+        reloadb.addEventListener("click", function (e){
         statt.classList.remove('stdisabled');
         that.panel.reloadCorpStat(); 
         });
           
 
         statt.appendChild(reloadspan);
-        statt.classList.add('stdisabled');        
+        statt.classList.add('stdisabled');
         }
     },
 
