Index: modules/user/user.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.install,v
retrieving revision 1.46
diff -u -r1.46 user.install
--- modules/user/user.install	5 May 2010 06:55:25 -0000	1.46
+++ modules/user/user.install	26 May 2010 16:37:03 -0000
@@ -144,7 +144,7 @@
         'length' => 254,
         'not null' => FALSE,
         'default' => '',
-        'description' => "User's email address.",
+        'description' => "User's e-mail address.",
       ),
       'theme' => array(
         'type' => 'varchar',
@@ -206,10 +206,10 @@
       ),
       'init' => array(
         'type' => 'varchar',
-        'length' => 64,
+        'length' => 254,
         'not null' => FALSE,
         'default' => '',
-        'description' => 'Email address used for initial account creation.',
+        'description' => 'E-mail address used for initial account creation.',
       ),
       'data' => array(
         'type' => 'text',
@@ -548,11 +548,27 @@
 }
 
 /**
- * Change the users table to allow longer email addresses - 254 characters instead of 64.
+ * Changes the users table to allow longer e-mail addresses.
+ *
+ * See http://drupal.org/node/502968 for further discussion.
  */
 function user_update_7005(&$sandbox) {
-  $schema = user_schema();
-  db_change_field('users', 'mail', 'mail', $schema['users']['fields']['mail']);
+  $mail_field = array(
+    'type' => 'varchar',
+    'length' => 254,
+    'not null' => FALSE,
+    'default' => '',
+    'description' => "User's e-mail address.",
+  );
+  $init_field = array(
+    'type' => 'varchar',
+    'length' => 254,
+    'not null' => FALSE,
+    'default' => '',
+    'description' => 'E-mail address used for initial account creation.',
+  );
+  db_change_field('users', 'mail', 'mail', $mail_field, array('indexes' => array('mail' => array('mail'))));
+  db_change_field('users', 'init', 'init', $init_field);
 }
 
 /**
