diff -up original/invite.module fixed/invite.module --- original/invite.module 2009-04-19 22:51:04.000000000 +0200 +++ fixed/invite.module 2009-04-24 14:48:59.000000000 +0200 @@ -481,9 +481,8 @@ function _invite_escalate_role($account) // Map to configured target roles. $targets = array(); - foreach ($roles as $role) { - $role_no_space = str_replace(' ', '_', $role); - $target = variable_get('invite_target_role_'. $role_no_space, DRUPAL_AUTHENTICATED_RID); + foreach ($roles as $rid => $role) { + $target = variable_get('invite_target_role_'. $rid, DRUPAL_AUTHENTICATED_RID); if ($target != DRUPAL_AUTHENTICATED_RID) { $targets[$target] = $target; } @@ -629,7 +628,6 @@ function invite_get_remaining_invites($a } else { $remaining = invite_get_role_limit($account); - if ($remaining > 0) { // Legacy support. $sent = db_result(db_query("SELECT COUNT(*) FROM {invite} WHERE uid = %d", $account->uid)); @@ -658,10 +656,10 @@ function invite_get_role_limit($account) } $role_limit = 0; - foreach (user_roles(0, 'send invitations') as $role) { - $role_no_space = str_replace(' ', '_', $role); - if (in_array($role, $account->roles)) { - $role_max = variable_get('invite_maxnum_'. $role_no_space, INVITE_UNLIMITED); + foreach (user_roles(0, 'send invitations') as $rid => $role) { + if (array_key_exists($rid, $account->roles)) { + $role_max = variable_get('invite_maxnum_'. $rid, INVITE_UNLIMITED); + drupal_set_message("$role ($rid) -> $role_max"); if ($role_max == INVITE_UNLIMITED) { return INVITE_UNLIMITED; }