diff --git a/includes/common.inc b/includes/common.inc
index 33109f00ec21cd711f314d17e0c2eaa419d80fba..69227435e25598501a5e6fe42aa4ef6b713511e3 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -866,12 +866,7 @@ function t($string, $args = array(), $langcode = NULL) {
  *   TRUE if the address is in a valid format.
  */
 function valid_email_address($mail) {
-  $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}';
-
-  return (bool)preg_match("/^$user@($domain|(\[($ipv4|$ipv6)\]))$/", $mail);
+  return (bool)filter_var($mail, FILTER_VALIDATE_EMAIL);
 }
 
 /**
diff --git a/modules/contact/contact.test b/modules/contact/contact.test
index 1bea7e53cf83a378e829fa04efd26f8ce1a1bf5b..b6328fc15317bb9b911ce8a8be1e19b213201ed4 100644
--- a/modules/contact/contact.test
+++ b/modules/contact/contact.test
@@ -45,7 +45,7 @@ class ContactSitewideTestCase extends DrupalWebTestCase {
 
     // Add categories.
     // Test invalid recipients.
-    $invalid_recipients = array('invalid', 'invalid@', /*'invalid@site', 'invalid@site.',*/ '@site.', '@site.com');
+    $invalid_recipients = array('invalid', 'invalid@', 'invalid@site', 'invalid@site.', '@site.', '@site.com');
     foreach ($invalid_recipients as $invalid_recipient) {
       $this->addCategory($this->randomName(16), $invalid_recipient, '', FALSE);
       $this->assertRaw(t('%recipient is an invalid e-mail address.', array('%recipient' => $invalid_recipient)), t('Caught invalid recipient (' . $invalid_recipient . ').'));