Index: user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1042
diff -u -r1.1042 user.module
--- modules/user/user.module	10 Sep 2009 12:33:45 -0000	1.1042
+++ modules/user/user.module	10 Sep 2009 13:46:14 -0000
@@ -2960,6 +2960,7 @@
  */
 function user_register_submit($form, &$form_state) {
   global $base_url;
+  global $language;
   $admin = user_access('administer users');
 
   $mail = $form_state['values']['mail'];
@@ -2990,6 +2991,11 @@
   unset($form_state['values']['form_token'], $form_state['values']['submit'], $form_state['values']['op'], $form_state['values']['notify'], $form_state['values']['form_id'], $form_state['values']['affiliates'], $form_state['values']['destination'], $form_state['values']['form_build_id']);
 
   $merge_data = array('pass' => $pass, 'init' => $mail, 'roles' => $roles);
+
+  if (empty($form_state['values']['language'])) {
+    $merge_data['language'] = $language->language;
+  }
+
   if (!$admin) {
     // Set the user's status because it was not displayed in the form.
     $merge_data['status'] = variable_get('user_register', 1) == 1;
Index: user.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.test,v
retrieving revision 1.60
diff -u -r1.60 user.test
--- modules/user/user.test	9 Sep 2009 11:36:02 -0000	1.60
+++ modules/user/user.test	10 Sep 2009 13:44:20 -0000
@@ -123,7 +123,9 @@
     $this->assertTrue(($new_user->created > REQUEST_TIME - 20 ), t('Correct creation time.'));
     $this->assertEqual($new_user->status, variable_get('user_register', 1) == 1 ? 1 : 0, t('Correct status field.'));
     $this->assertEqual($new_user->timezone, variable_get('date_default_timezone'), t('Correct time zone field.'));
-    $this->assertEqual($new_user->language, '', t('Correct language field.'));
+    //Get the global language and test if the new user has it set. DrupalTestCase sets up a new Drupal with "en" set as default language.
+    global $language;
+    $this->assertEqual($new_user->language, $language->language, t('Correct language field.'));
     $this->assertEqual($new_user->picture, '', t('Correct picture field.'));
     $this->assertEqual($new_user->init, $mail, t('Correct init field.'));
   }

