diff --git a/web/pgadmin/browser/server_groups/servers/roles/templates/role/js/role.js b/web/pgadmin/browser/server_groups/servers/roles/templates/role/js/role.js
index 4a0237b..1b73536 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/templates/role/js/role.js
+++ b/web/pgadmin/browser/server_groups/servers/roles/templates/role/js/role.js
@@ -297,7 +297,22 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Backform) {
       dialogHelp: '{{ url_for('help.static', filename='role_dialog.html') }}',
       label: '{{ _('Login/Group Role') }}',
       hasSQL: true,
-      canDrop: true,
+      canDrop: function(node, item) {
+        var treeData = this.getTreeNodeHierarchy(item),
+            server = treeData['server'];
+        /*
+        To Drop a role:
+          1) If Role we are deleting is superuser then User must be superuser
+          2) And for non-superuser roles User must have Create Role permission
+        */
+
+        // Role you are trying to drop is Superuser ?
+        if(node.is_superuser) {
+            return server.connected && server.user.is_superuser;
+        }
+        // For non super users
+        return server.connected && server.user.can_create_role;
+      },
       hasDepends: true,
       node_label: function(r) {
         return r.label;
diff --git a/web/pgadmin/browser/templates/browser/js/node.js b/web/pgadmin/browser/templates/browser/js/node.js
index afb4648..68e6622 100644
--- a/web/pgadmin/browser/templates/browser/js/node.js
+++ b/web/pgadmin/browser/templates/browser/js/node.js
@@ -478,11 +478,11 @@ function($, _, S, pgAdmin, Menu, Backbone, Alertify, pgBrowser, Backform) {
       },
       // Delete the selected object
       delete_obj: function(args, item) {
-          var input = args || {'url':'drop'};
-          obj = this,
-          t = pgBrowser.tree,
-          i = input.item || item || t.selected(),
-          d = i && i.length == 1 ? t.itemData(i) : undefined;
+          var input = args || {'url':'drop'},
+            obj = this,
+            t = pgBrowser.tree,
+            i = input.item || item || t.selected(),
+            d = i && i.length == 1 ? t.itemData(i) : undefined;
 
         if (!d)
           return;
