diff --git modules/user/user.module modules/user/user.module
index 9561345..1ed312c 100644
--- modules/user/user.module
+++ modules/user/user.module
@@ -586,10 +586,15 @@ function user_validate_name($name) {
   if (strpos($name, '  ') !== FALSE) {
     return t('The username cannot contain multiple spaces in a row.');
   }
-  if (preg_match('/[^\x{80}-\x{F7} a-z0-9@_.\'-]/i', $name)) {
+  if (preg_match('/[^\x80-\xBF'.            // Second, third or fourth byte of a multibyte sequence.
+                 '\xC2-\xDF'.               // Start of a 2-byte sequence.
+                 '\xE0-\xEF'.               // Start of a 3-byte sequence.
+                 '\xF0-\xF7'.               // Start of a 4-byte sequence.
+                 ' a-z0-9@_.\'-]/i',        // Desired characters from the single byte range.
+                 $name)) {
     return t('The username contains an illegal character.');
   }
-  if (preg_match('/[\x{80}-\x{A0}' .         // Non-printable ISO-8859-1 + NBSP
+  if (preg_match('/[\x{80}-\x{A0}' .        // Non-printable ISO-8859-1 + NBSP
                   '\x{AD}' .                // Soft-hyphen
                   '\x{2000}-\x{200F}' .     // Various space characters
                   '\x{2028}-\x{202F}' .     // Bidirectional text overrides
