diff --git a/web/pgadmin/browser/templates/browser/js/browser.js b/web/pgadmin/browser/templates/browser/js/browser.js
index 4b35fd9..ba167f7 100644
--- a/web/pgadmin/browser/templates/browser/js/browser.js
+++ b/web/pgadmin/browser/templates/browser/js/browser.js
@@ -300,6 +300,18 @@ function(require, $, _, S, Bootstrap, pgAdmin, Alertify, CodeMirror) {
         $obj_mnu.append(create_submenu.$el);
       }
     },
+    save_current_layout: function(obj) {
+      if(obj.docker) {
+        state = obj.docker.save();
+        settings = { setting: "Browser/Layout", value: state };
+        $.ajax({
+          type: 'POST',
+          url: "{{ url_for('settings.store') }}",
+          data: settings,
+          async:false
+        });
+      }
+    },
     init: function() {
       var obj=this;
       if (obj.initialized) {
@@ -307,21 +319,6 @@ function(require, $, _, S, Bootstrap, pgAdmin, Alertify, CodeMirror) {
       }
       obj.initialized = true;
 
-      // Store the main browser layout
-      $(window).bind('unload', function() {
-          if(obj.docker) {
-            state = obj.docker.save();
-            settings = { setting: "Browser/Layout", value: state };
-            $.ajax({
-              type: 'POST',
-              url: "{{ url_for('settings.store') }}",
-              data: settings,
-              async:false
-            });
-          }
-        return true;
-      });
-
       // Initialize the Docker
       obj.docker = new wcDocker(
         '#dockerContainer', {
@@ -355,6 +352,19 @@ function(require, $, _, S, Bootstrap, pgAdmin, Alertify, CodeMirror) {
         } else {
           obj.buildDefaultLayout()
         }
+
+        // Listen to panel attach/detach event so that last layout will be remembered
+        _.each(obj.panels, function(panel, name) {
+          panel.panel.on(wcDocker.EVENT.ATTACHED, function() {
+            obj.save_current_layout(obj);
+          });
+          panel.panel.on(wcDocker.EVENT.DETACHED, function() {
+            obj.save_current_layout(obj);
+          });
+          panel.panel.on(wcDocker.EVENT.MOVE_ENDED, function() {
+            obj.save_current_layout(obj);
+          });
+        });
       }
 
       // Syntax highlight the SQL Pane
