diff --git a/core/modules/user/config/install/user.settings.yml b/core/modules/user/config/install/user.settings.yml
index 8372ccd..d87a5f0 100644
--- a/core/modules/user/config/install/user.settings.yml
+++ b/core/modules/user/config/install/user.settings.yml
@@ -14,3 +14,4 @@ cancel_method: user_cancel_block
 password_reset_timeout: 86400
 password_strength: true
 langcode: en
+password_reset_text: 'If an account exists with these credentials, password reset instructions will be sent to the email associated with the account.'
diff --git a/core/modules/user/config/schema/user.schema.yml b/core/modules/user/config/schema/user.schema.yml
index 627d8a6..81850e8 100644
--- a/core/modules/user/config/schema/user.schema.yml
+++ b/core/modules/user/config/schema/user.schema.yml
@@ -50,6 +50,9 @@ user.settings:
     password_strength:
       type: boolean
       label: 'Enable password strength indicator'
+    password_reset_text:
+      type: string
+      label: 'Default password reset user message'
 
 user.mail:
  type: config_object
diff --git a/core/modules/user/src/AccountSettingsForm.php b/core/modules/user/src/AccountSettingsForm.php
index 1e5cd49..4542a34 100644
--- a/core/modules/user/src/AccountSettingsForm.php
+++ b/core/modules/user/src/AccountSettingsForm.php
@@ -190,6 +190,20 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#maxlength' => 180,
     );
 
+    // Privacy settings.
+    $form['privacy'] = array(
+      '#type' => 'details',
+      '#title' => $this->t('Privacy settings'),
+      '#open' => TRUE,
+    );
+    $form['privacy']['user_password_reset_text'] = array(
+      '#type' => 'textarea',
+      '#title' => $this->t('Password reset text'),
+      '#description' => $this->t('The text that appears when a user successfully submits the password reset form. Due to privacy concerns, it should not contain ainy information about previously registered users.'),
+      '#default_value' => $config->get('password_reset_text'),
+      '#required' => TRUE,
+    );
+
     $form['email'] = array(
       '#type' => 'vertical_tabs',
       '#title' => $this->t('Emails'),
@@ -434,6 +448,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       ->set('notify.status_activated', $form_state->getValue('user_mail_status_activated_notify'))
       ->set('notify.status_blocked', $form_state->getValue('user_mail_status_blocked_notify'))
       ->set('notify.status_canceled', $form_state->getValue('user_mail_status_canceled_notify'))
+      ->set('password_reset_text', $form_state->getValue('user_password_reset_text'))
       ->save();
     $this->config('user.mail')
       ->set('cancel_confirm.body', $form_state->getValue('user_mail_cancel_confirm_body'))
diff --git a/core/modules/user/src/Form/UserPasswordForm.php b/core/modules/user/src/Form/UserPasswordForm.php
index 83d8e0a..9670bc0 100644
--- a/core/modules/user/src/Form/UserPasswordForm.php
+++ b/core/modules/user/src/Form/UserPasswordForm.php
@@ -116,17 +116,11 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
     }
     $account = reset($users);
     if ($account && $account->id()) {
-      // Blocked accounts cannot request a new password.
-      if (!$account->isActive()) {
-        $form_state->setErrorByName('name', $this->t('%name is blocked or has not been activated yet.', array('%name' => $name)));
-      }
-      else {
+      // The account is valid and active.
+      if ($account->isActive()) {
         $form_state->setValueForElement(array('#parents' => array('account')), $account);
       }
     }
-    else {
-      $form_state->setErrorByName('name', $this->t('%name is not recognized as a username or an email address.', array('%name' => $name)));
-    }
   }
 
   /**
@@ -135,14 +129,22 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
   public function submitForm(array &$form, FormStateInterface $form_state) {
     $langcode = $this->languageManager->getCurrentLanguage()->getId();
 
+    $name = $form_state->getValue('name');
     $account = $form_state->getValue('account');
-    // Mail one time login URL and instructions using current language.
-    $mail = _user_mail_notify('password_reset', $account, $langcode);
-    if (!empty($mail)) {
-      $this->logger('user')->notice('Password reset instructions mailed to %name at %email.', array('%name' => $account->getUsername(), '%email' => $account->getEmail()));
-      drupal_set_message($this->t('Further instructions have been sent to your email address.'));
+    if ($account && $account->id()) {
+      // Mail one time login URL and instructions using current language.
+      $mail = _user_mail_notify('password_reset', $account, $langcode);
+      if (!empty($mail)) {
+        $this->logger('user')->notice('Password reset instructions mailed to %name at %email.', array('%name' => $account->getUsername(), '%email' => $account->getEmail()));
+      }
+    }
+    else {
+      $this->logger('user')->notice('Password reset form was submitted with an unknown or inactive account: %name.', array('%name' => $name));
     }
 
+    $message = \Drupal::config('user.settings')->get('password_reset_text');
+    drupal_set_message($message);
+
     $form_state->setRedirect('user.page');
   }
 
diff --git a/core/modules/user/src/Tests/UserPasswordResetTest.php b/core/modules/user/src/Tests/UserPasswordResetTest.php
index c012e9f..3e643ae 100644
--- a/core/modules/user/src/Tests/UserPasswordResetTest.php
+++ b/core/modules/user/src/Tests/UserPasswordResetTest.php
@@ -81,7 +81,8 @@ function testUserPasswordReset() {
     $edit = array('name' => $this->randomMachineName(32));
     $this->drupalPostForm(NULL, $edit, t('Submit'));
 
-    $this->assertText(t('@name is not recognized as a username or an email address.', array('@name' => $edit['name'])), 'Validation error message shown when trying to request password for invalid account.');
+    $message = $this->config('user.settings')->get('password_reset_text');
+    $this->assertText($message, 'Validation error message shown when trying to request password for invalid account.');
     $this->assertEqual(count($this->drupalGetMails(array('id' => 'user_password_reset'))), 0, 'No email was sent when requesting a password for an invalid account.');
 
     // Reset the password by username via the password reset page.
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index 7cc46ef..9eadbc7 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -107,3 +107,13 @@ function user_update_8100() {
 /**
  * @} End of "addtogroup updates-8.1.0-beta".
  */
+
+/**
+ * Add password reset notification text.
+ */
+function user_update_8300() {
+  $config_factory = \Drupal::configFactory();
+  $config = $config_factory->getEditable('user.settings');
+  $default_value = t('If an account exists with these credentials, password reset instructions will be sent to the email associated with the account.');
+  $config->set('password_reset_text', $default_value)->save(TRUE);
+}
