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;
       }
