diff --git a/includes/features.user.inc b/includes/features.user.inc
index 77f025b..e8eefed 100644
--- a/includes/features.user.inc
+++ b/includes/features.user.inc
@@ -122,16 +122,24 @@ function user_permission_features_rebuild($module) {
     // or via drush.
     node_types_rebuild();
 
+    $modules = user_permission_get_modules();
     $roles = _user_features_get_roles();
     $permissions_by_role = _user_features_get_permissions(FALSE);
     foreach ($defaults as $permission) {
       $perm = $permission['name'];
-      foreach ($roles as $role) {
-        if (in_array($role, $permission['roles'])) {
-          $permissions_by_role[$role][$perm] = TRUE;
-        }
-        else {
-          $permissions_by_role[$role][$perm] = FALSE;
+      if (empty($modules[$perm])) {
+        drupal_set_message(
+          t('Module for permission !name not found.', array('!name' => $perm)),
+          'error');
+      }
+      else {
+        foreach ($roles as $role) {
+          if (in_array($role, $permission['roles'])) {
+            $permissions_by_role[$role][$perm] = TRUE;
+          }
+          else {
+            $permissions_by_role[$role][$perm] = FALSE;
+          }
         }
       }
     }
