diff --git a/core/modules/user/lib/Drupal/user/AccountFormController.php b/core/modules/user/lib/Drupal/user/AccountFormController.php
index b79e983..37b80c0 100644
--- a/core/modules/user/lib/Drupal/user/AccountFormController.php
+++ b/core/modules/user/lib/Drupal/user/AccountFormController.php
@@ -127,18 +127,6 @@
     );
 
     $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',
@@ -146,7 +134,12 @@
       '#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(
