diff --git a/web/pgadmin/browser/templates/browser/js/browser.js b/web/pgadmin/browser/templates/browser/js/browser.js
index ad0f165..a4a0786 100644
--- a/web/pgadmin/browser/templates/browser/js/browser.js
+++ b/web/pgadmin/browser/templates/browser/js/browser.js
@@ -12,7 +12,8 @@ function(require, $, _, S, Bootstrap, pgAdmin, alertify, CodeMirror) {
 
   // Some scripts do export their object in the window only.
   // Generally the one, which do no have AMD support.
-  var wcDocker = window.wcDocker;
+  var wcDocker = window.wcDocker,
+    onbeforeunload_flag = true;
   $ = $ || window.jQuery || window.$;
   Bootstrap = Bootstrap || window.Bootstrap;
 
@@ -255,10 +256,19 @@ function(require, $, _, S, Bootstrap, pgAdmin, alertify, CodeMirror) {
           }], false);
         $obj_mnu.append(create_submenu.$el);
       }
+      // Drop down menu for reset layout
+      var $file_mnu = navbar.find('li#mnu_file > ul.dropdown-menu').first();
+      if($file_mnu) {
+        $file_mnu.append('<li class="menu-item"><a href="#" onclick="pgAdmin.Browser.reset_current_layout()">' +
+                         '<i class="fa fa-retweet"></i>' +
+                         '<span>{{ _('Restore Layout') }}</span>' +
+                         '</a></li>'
+                        );
+      }
     },
     init: function() {
       var obj=this;
-
+      obj.save_layout = true;
       if (obj.initialized) {
         return;
       }
@@ -266,11 +276,16 @@ function(require, $, _, S, Bootstrap, pgAdmin, alertify, CodeMirror) {
 
       // Store the main browser layout
       $(window).bind('unload', function() {
-        if(obj.docker) {
-          state = obj.docker.save();
-          settings = { setting: "Browser/Layout", value: state };
-          $.post("{{ url_for('settings.store') }}", settings);
-        }
+          if(obj.docker && obj.save_layout) {
+            state = obj.docker.save();
+            settings = { setting: "Browser/Layout", value: state };
+            $.ajax({
+              type: 'POST',
+              url: "{{ url_for('settings.store') }}",
+              data: settings,
+              async:false
+            });
+          }
         return true;
       });
 
@@ -634,21 +649,55 @@ function(require, $, _, S, Bootstrap, pgAdmin, alertify, CodeMirror) {
 
       navbar.children('#mnu_obj').removeClass('hide');
        obj.enable_disable_menus();
+    },
+    // We will force unload method to not to save current layout
+    // and reload the window
+    reset_current_layout: function() {
+      var obj = this;
+      alertify.confirm('{{ _('Reset layout') }}',
+        '{{ _('Are you sure you want to reset current layout and reload the page again?<br />[Note: All the unsaved data will be lost]') }}',
+        function() {
+          // User clicked OK button...
+          var current_url = document.URL;
+
+          // Delete the record from database as well, then only reload page
+          $.ajax({
+            url: '{{ url_for('settings.reset_layout') }}',
+            type: 'DELETE',
+            async: false,
+            error: function() {
+              console.log('Something went wrong on server while resetting layout');
+            }
+          });
+
+          // Toggle flag which will prevents save again
+          obj.save_layout = false;
+          // Flag will prevent onbeforeunload function to be called
+          onbeforeunload_flag = false;
+          // Now reload page
+          location.reload(true);
+        },
+        function() {
+          // Do nothing as user cancel the operation
+        }
+      );
     }
   });
 
+
   window.onbeforeunload = function(ev) {
     var e = ev || window.event;
+    if(onbeforeunload_flag) {
+      var msg = '{{ _('Do you really want to leave the page?') }}';
 
-    var msg = '{{ _('Do you really want to leave the page?') }}';
+      // For IE and Firefox prior to version 4
+      if (e) {
+        e.returnValue = msg;
+      }
 
-    // For IE and Firefox prior to version 4
-    if (e) {
-      e.returnValue = msg;
+      // For Safari
+      return msg;
     }
-
-    // For Safari
-    return msg;
   };
 
   return pgAdmin.Browser;
diff --git a/web/pgadmin/settings/__init__.py b/web/pgadmin/settings/__init__.py
index a245aff..a3f529e 100644
--- a/web/pgadmin/settings/__init__.py
+++ b/web/pgadmin/settings/__init__.py
@@ -110,3 +110,23 @@ def get(setting=None, default=None):
                               errormsg=errormsg,
                               info=info,
                               result=request.form)
+
+
+@blueprint.route("/reset_layout", methods=['DELETE'])
+@login_required
+def reset_layout():
+    """Reset configuration setting"""
+    if request.method == 'DELETE':
+        # There can be only one record at most
+        data = Setting.query.filter_by(user_id=current_user.id).first()
+        try:
+            if data is not None:
+                db.session.delete(data)
+                db.session.commit()
+        except Exception as e:
+            return make_json_response(
+                    status=410, success=0, errormsg=str(e)
+                    )
+
+    return make_json_response(result=request.form)
+
