diff --git a/modules/user/user.module b/modules/user/user.module
index 60f32a1..88b3a52 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -1125,25 +1125,19 @@ function user_account_form(&$form, &$form_state) {
   );
 
   $roles = array_map('check_plain', user_roles(TRUE));
-  // The disabled checkbox subelement for the 'authenticated user' role
-  // must be generated separately and added to the checkboxes element,
-  // because of a limitation in Form API not supporting a single disabled
-  // checkbox within a set of checkboxes.
-  // @todo This should be solved more elegantly. See issue #119038.
-  $checkbox_authenticated = array(
-    '#type' => 'checkbox',
-    '#title' => $roles[DRUPAL_AUTHENTICATED_RID],
-    '#default_value' => TRUE,
-    '#disabled' => TRUE,
-  );
-  unset($roles[DRUPAL_AUTHENTICATED_RID]);
+
   $form['account']['roles'] = array(
     '#type' => 'checkboxes',
     '#title' => t('Roles'),
     '#default_value' => (!$register && isset($account->roles) ? array_keys($account->roles) : array()),
     '#options' => $roles,
     '#access' => $roles && user_access('administer permissions'),
-    DRUPAL_AUTHENTICATED_RID => $checkbox_authenticated,
+  );
+
+  // Special handling for the inevitable "Authenticated user" role.
+  $form['account']['roles'][DRUPAL_AUTHENTICATED_RID] = array(
+    '#default_value' => TRUE,
+    '#disabled' => TRUE,
   );
 
   $form['account']['notify'] = array(
