diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 69a1f62..71b9320 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -457,7 +457,7 @@ function system_element_info() {
   );
   $types['password_confirm'] = array(
     '#input' => TRUE,
-    '#process' => array('form_process_password_confirm', 'user_form_process_password_confirm'),
+    '#process' => array('form_process_password_confirm'),
     '#theme_wrappers' => array('form_element'),
   );
   $types['textarea'] = array(
diff --git a/core/modules/user/lib/Drupal/user/AccountFormController.php b/core/modules/user/lib/Drupal/user/AccountFormController.php
index 2c6f182..ea5de64 100644
--- a/core/modules/user/lib/Drupal/user/AccountFormController.php
+++ b/core/modules/user/lib/Drupal/user/AccountFormController.php
@@ -64,6 +64,7 @@ abstract class AccountFormController extends EntityFormController {
         '#type' => 'password_confirm',
         '#size' => 25,
         '#description' => t('To change the current user password, enter the new password in both fields.'),
+        '#pre_render' => array('user_form_pre_render_password_confirm'),
       );
 
       // To skip the current password field, the user must have logged in via a
@@ -108,6 +109,7 @@ abstract class AccountFormController extends EntityFormController {
         '#size' => 25,
         '#description' => t('Provide a password for the new account in both fields.'),
         '#required' => TRUE,
+        '#pre_render' => array('user_form_pre_render_password_confirm'),
       );
     }
 
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index e90c907..edc5d51 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -3051,13 +3051,10 @@ function _user_mail_notify($op, $account, $language = NULL) {
 /**
  * Form element process handler for client-side password validation.
  *
- * This #process handler is automatically invoked for 'password_confirm' form
- * elements to add the JavaScript and string translations for dynamic password
- * validation.
- *
- * @see system_element_info()
+ * This #pre_render handler is added to the user registration form to add the
+ * JavaScript and string translations for dynamic password validation.
  */
-function user_form_process_password_confirm($element) {
+function user_form_pre_render_password_confirm($element) {
   global $user;
 
   $js_settings = array(
