diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/templates/collation/js/collation.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/templates/collation/js/collation.js
index 05dad55..e4e3176 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/templates/collation/js/collation.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/templates/collation/js/collation.js
@@ -100,19 +100,8 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
               return false;
             }
             return true;
-          },
-          control: Backform.NodeListByNameControl.extend({
-            render: function(){
-            // Initialize parent's render method
-            Backform.NodeListByNameControl.prototype.render.apply(this, arguments);
-
-            // Set schema default value to its parent Schema
-            if(this.model.isNew()){
-              this.model.set({'schema': this.model.node_info.schema.label});
-            }
-            return this;
-            }
-          })
+          }, control: 'node-list-by-name',
+          cache_node: 'database', cached_level: 'database'
         },{
           id: 'copy_collation', label:'{{ _('Copy collation') }}', cell: 'string',
           control: 'node-ajax-options',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/templates/domains/js/domains.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/templates/domains/js/domains.js
index ebf822e..7d1e8fe 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/templates/domains/js/domains.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/templates/domains/js/domains.js
@@ -19,8 +19,15 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
   var ConstraintModel = pgBrowser.Node.Model.extend({
     idAttribute: 'conoid',
     initialize: function(attrs, args) {
-      var isNew = (_.size(attrs) === 0);
-      if (!isNew) {
+      if (_.size(attrs) === 0) {
+        var userInfo = pgBrowser.serverInfo[
+              args.node_info.server._id
+            ].user,
+            schemaInfo = args.node_info.schema;
+        this.set({
+          'owner': userInfo.name, 'schema': schemaInfo._label
+        }, {silent: true});
+      } else {
         this.convalidated_default = this.get('convalidated')
       }
       pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
index 7b75de1..f0c7036 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
@@ -491,13 +491,13 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
         initialize: function(attrs, args) {
           var isNew = (_.size(attrs) === 0);
           if (isNew) {
-            // Set Selected Schema
-            schema = args.node_info.schema._label
-            this.set({'basensp': schema}, {silent: true});
+            var schema = args.node_info.schema._label,
+                userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
 
-            // Set Current User
-            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
-            this.set({'owner': userInfo.name}, {silent: true});
+            // Set Selected Schema and Current User
+            this.set({
+              'basensp': schema, 'owner': userInfo.name
+            }, {silent: true});
           }
           pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
         },
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/templates/fts_configuration/js/fts_configuration.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/templates/fts_configuration/js/fts_configuration.js
index 96f823e..b04ad10 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/templates/fts_configuration/js/fts_configuration.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/templates/fts_configuration/js/fts_configuration.js
@@ -490,7 +490,8 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
         },{
           id: 'schema', label: '{{ _('Schema')}}', cell: 'string',
           type: 'text', mode: ['create','edit'], node: 'schema',
-          control: 'node-list-by-id'
+          control: 'node-list-by-id', cache_node: 'database',
+          cache_level: 'database'
         },{
           id: 'description', label:'{{ _('Comment') }}', cell: 'string',
           type: 'multiline', cellHeaderClasses: 'width_percent_50'
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/templates/fts_parser/js/fts_parser.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/templates/fts_parser/js/fts_parser.js
index 949be82..6a12bf7 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/templates/fts_parser/js/fts_parser.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/templates/fts_parser/js/fts_parser.js
@@ -89,7 +89,8 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
         },{
           id: 'schema', label: '{{ _('Schema')}}', cell: 'string',
           type: 'text', mode: ['create','edit'], node: 'schema',
-          control: 'node-list-by-id'
+          control: 'node-list-by-id', cache_node: 'database',
+          cache_level: 'database'
         },{
           id: 'description', label:'{{ _('Comment') }}', cell: 'string',
           type: 'multiline', cellHeaderClasses: 'width_percent_50'
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/templates/fts_template/js/fts_templates.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/templates/fts_template/js/fts_templates.js
index 41adf27..fba56b6 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/templates/fts_template/js/fts_templates.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/templates/fts_template/js/fts_templates.js
@@ -83,7 +83,8 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
         },{
           id: 'schema', label: '{{ _('Schema')}}', cell: 'string',
           type: 'text', mode: ['create','edit'], node: 'schema',
-          control: 'node-list-by-id'
+          control: 'node-list-by-id', cache_node: 'database',
+          cache_level: 'database'
         },{
           id: 'description', label:'{{ _('Comment') }}', cell: 'string',
           type: 'multiline', cellHeaderClasses: 'width_percent_50'
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py
index dfbae1e..bfb2fe7 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py
@@ -409,7 +409,7 @@ class PackageView(PGChildNodeView):
 
             return make_json_response(
                 success=1,
-                info=_("Package dropped"),
+                info=_("Packge dropped"),
                 data={
                     'id': pkgid,
                     'scid': scid,
@@ -517,9 +517,8 @@ class PackageView(PGChildNodeView):
             u'name'
         ]
 
-        data['schema'] = self.schema
-
         if pkgid is not None:
+            data['schema'] = self.schema
             SQL = render_template("/".join([self.template_path, 'properties.sql']), scid=scid, pkgid=pkgid)
             status, res = self.conn.execute_dict(SQL)
             if not status:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/package/js/package.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/package/js/package.js
index eeca349..6183268 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/package/js/package.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/package/js/package.js
@@ -85,6 +85,17 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
           acl: undefined,
           pkgacl: []
         },
+        initialize: function(attrs, args) {
+          if (_.size(attrs) === 0) {
+            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
+            var schemaInfo = args.node_info.schema;
+
+            this.set({
+              'owner': userInfo.name, 'schema': schemaInfo._label
+            }, {silent: true});
+          }
+          pgAdmin.Browser.Node.Model.prototype.initialize.apply(this, arguments);
+        },
         // Define the schema for package node.
         schema: [{
           id: 'name', label: '{{ _('Name') }}', cell: 'string',
@@ -102,6 +113,17 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
             return !m.isNew();
           }
         },{
+          id: 'schema', label:'{{_('Schema')}}', type: 'text', node: 'schema',
+          control: 'node-list-by-name',
+          disabled: function(m) { return !m.isNew(); }, filter: function(d) {
+            // If schema name start with pg_* then we need to exclude them
+            if(d && d.label.match(/^pg_/))
+            {
+              return false;
+            }
+            return true;
+          }, cache_node: 'database', cache_level: 'database'
+        },{
           id: 'is_sys_object', label: '{{ _('System package?') }}',
            cell:'boolean', type: 'switch',mode: ['properties']
         },{
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js
index c2f6fd1..de338f2 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js
@@ -140,7 +140,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
               return false;
             }
             return true;
-            }
+          }, cache_node: 'database', cache_level: 'database'
         },{
           id: 'comment', label:'{{ _('Comment') }}', type: 'multiline',
           mode: ['properties', 'create', 'edit']
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js
index fadc95a..a3ab4ad 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js
@@ -83,12 +83,13 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
           id: 'owner', label:'{{ _('Owner') }}', cell: 'string',
           type: 'text', mode: ['properties', 'create', 'edit'],
           disabled: true , control: 'node-list-by-name',
-          node: 'role'
+          node: 'role', visible: false
         },{
           id: 'schema', label:'{{ _('Schema') }}', cell: 'string',
           type: 'text', mode: ['properties', 'create', 'edit'],
-          disabled: true , control: 'node-list-by-name',
-          node: 'schema'
+          disabled: function(m) { return !m.isNew(); }, node: 'schema',
+          control: 'node-list-by-name', cache_node: 'database',
+          cache_level: 'database'
         },{
           id: 'targettype', label:'{{ _('Target type') }}', cell: 'string',
           disabled: 'inSchema', group: '{{ _('Definition') }}',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js
index 44b4521..2d00609 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js
@@ -276,15 +276,15 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
         },
         // Default values!
         initialize: function(attrs, args) {
-          var self = this,
-              isNew = (_.size(attrs) === 0);
+          var self = this;
 
-          if (isNew) {
-            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
-            var schemaInfo = args.node_info.schema;
+          if (_.size(attrs) === 0) {
+            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user,
+                schemaInfo = args.node_info.schema;
 
-            this.set({'relowner': userInfo.name}, {silent: true});
-            this.set({'schema': schemaInfo._label}, {silent: true});
+            this.set({
+              'relowner': userInfo.name, 'schema': schemaInfo._label
+            }, {silent: true});
           }
           pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
 
@@ -308,7 +308,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
               return false;
             }
             return true;
-          }
+          }, cache_node: 'database', cache_level: 'database'
         },{
           id: 'spcname', label:'{{ _('Tablespace') }}', node: 'tablespace',
           type: 'text', control: 'node-list-by-name', disabled: 'inSchema',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/templates/type/js/type.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/templates/type/js/type.js
index 08f1a3a..965826e 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/templates/type/js/type.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/templates/type/js/type.js
@@ -304,14 +304,13 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Backgrid) {
 
         // Default values!
         initialize: function(attrs, args) {
-          var isNew = (_.size(attrs) === 0);
+          if (_.size(attrs) === 0) {
+            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user,
+                schemaInfo = args.node_info.schema;
 
-          if (isNew) {
-            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
-            var schemaInfo = args.node_info.schema;
-
-            this.set({'typeowner': userInfo.name}, {silent: true});
-            this.set({'schema': schemaInfo._label}, {silent: true});
+            this.set({
+              'typeowner': userInfo.name, 'schema': schemaInfo._label
+            }, {silent: true});
           }
           pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
         },
@@ -338,7 +337,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Backgrid) {
               return false;
             }
             return true;
-          },
+          }, cache_node: 'database', cache_level: 'database',
           control: 'node-list-by-name', select2: {allowClear: false}
         },{
           id: 'typtype', label:'{{ _('Type') }}',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mview/js/mview.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mview/js/mview.js
index 50e49884..190c661 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mview/js/mview.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mview/js/mview.js
@@ -115,19 +115,13 @@ function($, _, S, pgAdmin, alertify, pgBrowser, CodeMirror) {
        */
       model: pgBrowser.Node.Model.extend({
         initialize: function(attrs, args) {
-          var isNew = (_.size(attrs) === 0);
-          if (isNew) {
-            // Set Selected Schema
-            var schemaLabel = args.node_info.schema._label;
-            if (schemaLabel == '') {
-              this.set({'schema': 'public'}, {silent: true});
-            } else {
-              this.set({'schema': schemaLabel}, {silent: true});
-            }
-
-            // Set Current User
-            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
-            this.set({'owner': userInfo.name}, {silent: true});
+          if (_.size(attrs) === 0) {
+            // Set Selected Schema and Current User
+            var schemaLabel = args.node_info.schema._label || 'public',
+                userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
+            this.set({
+              'schema': 'public', 'owner': userInfo.name
+            }, {silent: true});
           }
           pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
         },
@@ -149,7 +143,8 @@ function($, _, S, pgAdmin, alertify, pgBrowser, CodeMirror) {
         },{
           id: 'schema', label:'{{ _("Schema") }}', cell: 'string', first_empty: false,
           control: 'node-list-by-name', type: 'text', cache_level: 'database',
-          node: 'schema', mode: ['create', 'edit'], disabled: 'inSchema', select2: { allowClear: false }
+          node: 'schema', mode: ['create', 'edit'], cache_node: 'database',
+          disabled: 'inSchema', select2: { allowClear: false }
         },{
           id: 'system_view', label:'{{ _("System view?") }}', cell: 'string',
           type: 'switch', disabled: true, mode: ['properties'],
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js
index 7f87044..651529a 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js
@@ -89,19 +89,13 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) {
        */
       model: pgBrowser.Node.Model.extend({
         initialize: function(attrs, args) {
-          var isNew = (_.size(attrs) === 0);
-          if (isNew) {
-            // Set Selected Schema
-            var schemaLabel = args.node_info.schema._label;
-            if (schemaLabel == '') {
-              this.set({'schema': 'public'}, {silent: true});
-            } else {
-              this.set({'schema': schemaLabel}, {silent: true});
-            }
-
-            // Set Current User
-            var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
-            this.set({'owner': userInfo.name}, {silent: true});
+          if (_.size(attrs) === 0) {
+            // Set Selected Schema and, Current User
+            var schemaLabel = args.node_info.schema._label || 'public',
+                userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
+            this.set({
+              'schema': schemaLabel, 'owner': userInfo.name
+            }, {silent: true});
           }
           pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
         },
@@ -117,7 +111,9 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) {
         },{
           id: 'schema', label:'{{ _("Schema") }}', cell: 'string', first_empty: false,
           control: 'node-list-by-name', type: 'text', cache_level: 'database',
-          node: 'schema', disabled: 'notInSchema', mode: ['create', 'edit'], select2: { allowClear: false }
+          node: 'schema', disabled: 'notInSchema', mode: ['create', 'edit'],
+          select2: { allowClear: false }, cache_node: 'database',
+          cache_level: 'database'
         },{
           id: 'system_view', label:'{{ _("System view?") }}', cell: 'string',
           type: 'switch', disabled: true, mode: ['properties']
