diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index f7a136c..21887f3 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -116,7 +116,7 @@
     var matchCount = 0;
 
     for (matchCount = 0; matchCount < inactiveLi.length; matchCount++) {
-      inactiveLi[i].addEventListener('click', function (e) {
+      inactiveLi[matchCount].addEventListener('click', function (e) {
         if (this._match !== undefined)
           this._match.open();
         else {
diff --git a/dev/js/src/panel/result.js b/dev/js/src/panel/result.js
index d3eef46..bee0409 100644
--- a/dev/js/src/panel/result.js
+++ b/dev/js/src/panel/result.js
@@ -16,13 +16,13 @@
   loc.SHOW_KQ      = loc.SHOW_KQ      || 'show KoralQuery';
   
   return {
-    create : function (show) {
-      return Object.create(panelClass)._init(['result']).upgradeTo(this)._init(show);
+    create : function (opened) {
+      return Object.create(panelClass)._init(['result']).upgradeTo(this)._init(opened);
     },
 
     // Initialize panel
-    _init : function (show) {
-
+    _init : function (opened) {
+      this._opened = opened;
       return this;
     },
 
@@ -45,15 +45,15 @@
 
         // On close, remove session info on KQ
         this._kq.onClose = function () {
-          delete show['kq'];
+          this._opened['kq'] = undefined;
         };
 
-        show['kq'] = true;
+        this._opened['kq'] = true;
         this.add(this._kq);
       });
 
       // Show KoralQuery in case it's meant to be shown
-      if (show['kq'])
+      if (this._opened['kq'])
         kqButton.click();
     },
 
