diff --git a/includes/import.rpermissions.admin.inc b/includes/import.rpermissions.admin.inc
index bb4d9e1..aae0b2f 100644
--- a/includes/import.rpermissions.admin.inc
+++ b/includes/import.rpermissions.admin.inc
@@ -62,6 +62,10 @@ function permissions_export_rpermissions_import_form_submit($form, &$form_state)
                 if (isset($data['permissions']) && is_array($data['permissions'])) {
                   $permissions = _permissions_export_validate_rpermissions($data['permissions']);
                   user_role_grant_permissions($role->rid, $permissions);
+                  // removing old unwanted permissions for role
+                  $all_permissions = _permissions_export_get_all_user_permissions();
+                  $revoke_permissions = array_diff($all_permissions, $permissions);
+                  user_role_revoke_permissions($role->rid, $revoke_permissions);
                 }
               }
             }
@@ -74,6 +78,10 @@ function permissions_export_rpermissions_import_form_submit($form, &$form_state)
                 if (isset($data['permissions']) && is_array($data['permissions']) && count($data['permissions']) > 0) {
                   $permissions = _permissions_export_validate_rpermissions($data['permissions']);
                   user_role_grant_permissions($rid, $permissions);
+                  // removing old unwanted permissions for role
+                  $all_permissions = _permissions_export_get_all_user_permissions();
+                  $revoke_permissions = array_diff($all_permissions, $permissions);
+                  user_role_revoke_permissions($role->rid, $revoke_permissions);
                 }
               }
             }
diff --git a/permissions_export.module b/permissions_export.module
index 93dcc3b..53a3f3d 100644
--- a/permissions_export.module
+++ b/permissions_export.module
@@ -91,4 +91,19 @@ function _permissions_export_validate_rpermissions($data) {
     }
   }
   return $permissions;
+}
+
+/**
+ * Use to get all user permissions.
+ *
+ * @return array
+ *   an array of role permissions.
+ */
+function _permissions_export_get_all_user_permissions() {
+  $permissions = &drupal_static(__FUNCTION__);
+  if (!isset($permissions['all'])) {
+    $all_permission = user_permission_get_modules();
+    $permissions['all'] = array_keys($all_permission);
+  }
+  return $permissions['all'];
 }
\ No newline at end of file
