diff --git a/public/app/features/panel/panel_ctrl.ts b/public/app/features/panel/panel_ctrl.ts
index 94de0166f61..994eaa5fd5b 100644
--- a/public/app/features/panel/panel_ctrl.ts
+++ b/public/app/features/panel/panel_ctrl.ts
@@ -91,16 +91,24 @@ export class PanelCtrl {
     this.editModeInitiated = true;
     this.events.emit('init-edit-mode', null);
 
-    var route = this.$injector.get('$route');
-    if (route.current.params.editorTab) {
+    var routeParams = this.$injector.get('$routeParams');
+    if (routeParams.editorTab) {
       this.editorTabs.forEach((tab, i) => {
-        if (tab.title === route.current.params.editorTab) {
+        if (tab.title === routeParams.editorTab) {
           this.editorTabIndex = i;
         }
       });
     }
   }
 
+  changeTab(newIndex) {
+    this.editorTabIndex = newIndex;
+    var route = this.$injector.get('$route');
+
+    route.current.params.editorTab = this.editorTabs[newIndex].title;
+    route.updateParams();
+  }
+
   addEditorTab(title, directiveFn, index?) {
     var editorTab = {title, directiveFn};
 
diff --git a/public/app/features/panel/panel_directive.ts b/public/app/features/panel/panel_directive.ts
index a9bb75760f5..7d63e620f98 100644
--- a/public/app/features/panel/panel_directive.ts
+++ b/public/app/features/panel/panel_directive.ts
@@ -36,7 +36,7 @@ var panelTemplate = `
 
         <ul class="gf-tabs">
           <li class="gf-tabs-item" ng-repeat="tab in ::ctrl.editorTabs">
-            <a class="gf-tabs-link" ng-click="ctrl.editorTabIndex = $index" ng-class="{active: ctrl.editorTabIndex === $index}">
+            <a class="gf-tabs-link" ng-click="ctrl.changeTab($index)" ng-class="{active: ctrl.editorTabIndex === $index}">
               {{::tab.title}}
             </a>
           </li>