diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js
index ac7222ea..c2ad41d6 100644
--- a/web/pgadmin/browser/static/js/browser.js
+++ b/web/pgadmin/browser/static/js/browser.js
@@ -1274,7 +1274,14 @@ define('pgadmin.browser', [
             // If there is no parent then just update the node
             if(this.t.isRootNode(_parent) ||
              (_parent && _parent.length == 0 && ctx.op == 'UPDATE')) {
-              updateNode();
+              var that = this;
+              this.t.remove(this.i).then(() => {
+                that.t.before(that.i, that.new).then((new_item) => {
+                  that.t.select(new_item);
+                }, () => {
+                  console.warn('Failed to add before..', arguments);
+                });
+              });
             } else {
               var postRemove = function() {
                 // If item has parent but no grand parent
diff --git a/web/pgadmin/browser/static/js/collection.js b/web/pgadmin/browser/static/js/collection.js
index 4445892a..586cf26e 100644
--- a/web/pgadmin/browser/static/js/collection.js
+++ b/web/pgadmin/browser/static/js/collection.js
@@ -428,6 +428,7 @@ define([
                 pgBrowser.report_error(res.errormsg, res.info);
               } else {
                 $(pgBrowser.panels['properties'].panel).removeData('node-prop');
+                //pgBrowser.Events.trigger('pgadmin:browser:tree:refresh-tree-state');
                 pgBrowser.Events.trigger(
                   'pgadmin:browser:tree:refresh', sel_item || pgBrowser.tree.selected(), {
                     success: function() {
diff --git a/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js b/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js
index 950d0052..2f802820 100644
--- a/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js
+++ b/web/pgadmin/static/js/tree/pgadmin_tree_save_state.js
@@ -69,6 +69,8 @@ _.extend(pgBrowser.browserTreeState, {
         this.remove_from_cache, this);
       pgBrowser.Events.on('pgadmin:browser:tree:update-tree-state',
         this.update_cache, this);
+      /*pgBrowser.Events.on('pgadmin:browser:tree:refresh-tree-state',
+        this.refresh_cache, this);*/
     } else if (!_.isUndefined(save_tree_state_period)) {
       $.ajax({
         url: url_for('settings.reset_tree_state'),
@@ -302,7 +304,7 @@ _.extend(pgBrowser.browserTreeState, {
             let index = tmpItemData.indexOf(data.id);
 
             pgBrowser.tree.open(item);
-
+            pgBrowser.tree.ensureLoaded(item);
             if (index == (tmpItemData.length - 1 )) {
               let tIndex = treeData[treeHierarchy[self.parent]['_id']]['paths'].indexOf(tData);
               treeData[treeHierarchy[self.parent]['_id']]['paths'].splice(tIndex, 1);
@@ -364,7 +366,6 @@ _.extend(pgBrowser.browserTreeState, {
       if (!_.isUndefined(databaseItem))
         this.current_state[topParent]['selected'][databaseItem] = selectedItem;
     }
-
   },
   select_tree_item(item) {
     let treeData = this.stored_state || {},
@@ -373,12 +374,12 @@ _.extend(pgBrowser.browserTreeState, {
       tmpTreeData = treeData[treeHierarchy[this.parent]['_id']];
 
 
-    if (treeHierarchy.hasOwnProperty('database')) {
-      let databaseItem = treeHierarchy['database']['id'];
+    if (treeHierarchy.hasOwnProperty('server')) {
+      let selectedItem = treeHierarchy['server']['id'];
 
-      if (tmpTreeData && 'selected' in tmpTreeData && databaseItem in tmpTreeData['selected']) {
-        if (tmpTreeData['selected'][databaseItem] == data.id) {
-          pgBrowser.tree.select(item);
+      if (tmpTreeData && 'selected' in tmpTreeData && selectedItem in tmpTreeData['selected']) {
+        if (tmpTreeData['selected'][selectedItem] == data.id) {
+          pgBrowser.tree.select(item, true, 'center');
         }
       }
     }
diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js
index 42c8b129..c527ffc8 100644
--- a/web/pgadmin/static/js/tree/tree.js
+++ b/web/pgadmin/static/js/tree/tree.js
@@ -123,6 +123,10 @@ export class Tree {
     await this.tree.toggleDirectory(item);
   }
 
+  async ensureLoaded(item) {
+    await item.ensureLoaded();
+  }
+
   async ensureVisible(item){
     await this.tree.ensureVisible(item);
   }
