diff --git a/dev/js/spec/statSpec.js b/dev/js/spec/statSpec.js
index fbb41a1..d5be4d8 100644
--- a/dev/js/spec/statSpec.js
+++ b/dev/js/spec/statSpec.js
@@ -424,6 +424,29 @@
         expect(checkStatActive(view,show)).toBe(true);
       });
       
+      it ('should refresh a disabled corpus statistic if statistic button is clicked', function(){
+        
+        KorAP.vc = generateCorpusDocGr();  
+        
+        //Show corpus statistic
+        let show = document.createElement('div');
+        show.appendChild(KorAP.vc.element());
+        let panel = show.firstChild.lastChild.firstChild;
+        let statbut =  panel.lastChild.children[0];
+        statbut.click();
+        let view = panel.firstChild.firstChild;
+        
+        //corpus statistic is active
+        expect(checkStatActive(view, show)).toBe(true);
+        
+        //change vc, a line in vc builder is deleted
+        KorAP._delete.apply(KorAP.vc.root().getOperand(0));
+        expect(checkStatDisabled(view,show)).toBe(true);
+        
+        //click at statistic button
+        statbut.click();
+        expect(checkStatActive(view,show)).toBe(true);
+      });
       
       it('should disable corpus statistic if entries in vc builder are deleted', function(){
         KorAP.vc = generateCorpusDocGr();
diff --git a/dev/js/src/panel/vc.js b/dev/js/src/panel/vc.js
index 91fb544..39deef5 100644
--- a/dev/js/src/panel/vc.js
+++ b/dev/js/src/panel/vc.js
@@ -40,12 +40,23 @@
      * Add corpus statistic view to panel
      */
     addCorpStat: function(){
+      
+      //Refreshes corpus statistic
+      if(this.statView !== undefined &&  this.statView.shown()){
+        let statt = this.statView.show();
+        if (statt.classList.contains('stdisabled')){
+          this.reloadCorpStat(); 
+          statt.classList.remove('stdisabled');
+        }
+      }
+      
+      //Add corpus statistic
       if (this.statView === undefined || !this.statView.shown()) {
         this.statView = corpStatVClass.create(this.vc, this);
         this.add(this.statView);
         this.vc.oldvcQuery = KorAP.vc.toQuery();
       }
-
+      
     },
     
     /**
