Index: invite.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/invite/invite.module,v
retrieving revision 1.10.2.88
diff -u -r1.10.2.88 invite.module
--- invite.module	12 Nov 2007 23:19:09 -0000	1.10.2.88
+++ invite.module	12 Nov 2007 23:50:01 -0000
@@ -1156,21 +1156,28 @@
  */
 function _invite_get_emails($string) {
   $valid_emails = $failed_emails = array();
+  $user = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+';
+  $domain = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+';
+  $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}';
+  $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}';
+
   $emails = array_unique(split("[,\n\r]", $string));
   foreach ($emails as $email) {
     $email = trim($email);
     if ($email) {
-      if (valid_email_address($email)) {
-        $valid_emails[] = $email;
+      if (preg_match("/($user@($domain|(\[($ipv4|$ipv6)\])))>?$/", $email, $match)) {
+        $valid_emails[] = $match[1];
       }
       else {
         $failed_emails[] = $email;
       }
     }
   }
+
   if (count($failed_emails)) {
     $_SESSION['invite_failed_emails'] = serialize($failed_emails);
   }
+
   return $valid_emails;
 }
 

