diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc
index 8239c53..0608839 100644
--- a/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -234,6 +234,12 @@ function user_profile_form($form, &$form_state, $account) {
     '#type' => 'submit',
     '#value' => t('Save'),
   );
+  $form['actions']['resend'] = array(
+    '#type' => 'submit',
+    '#value' => t('Re-send welcome message'),
+    '#submit' => array('user_edit_resend_submit'),
+    '#access' => $account->uid > 1 && (($account->uid == $user->uid && user_access('cancel account')) || user_access('administer users')),
+  );
   $form['actions']['cancel'] = array(
     '#type' => 'submit',
     '#value' => t('Cancel account'),
@@ -301,6 +307,42 @@ function user_edit_cancel_submit($form, &$form_state) {
   $form_state['redirect'] = array("user/" . $form['#user']->uid . "/cancel", array('query' => $destination));
 }
 
+/*
+ * Submit function for the 'Re-send welcome message' button on the user edit form.
+ */
+function user_edit_resend_submit($form, &$form_state) {
+  global $language;
+  $destination = array();
+  if (isset($_GET['destination'])) {
+    $destination = drupal_get_destination();
+    unset($_GET['destination']);
+  }
+
+  $account = user_load_by_name($form_state['values']['name']);
+  $user_register = variable_get('user_register', 2);
+
+  switch ($user_register) {
+    case 0:
+      $op = 'register_admin_created';
+      break;
+    case 1:
+      $op = 'register_no_approval_required';
+      break;
+    case 2:
+      $op = 'register_pending_approval';
+  }
+
+  $mail = _user_mail_notify($op, $account, $language);
+  if (!empty($mail)) {
+    watchdog('user', 'Welcome message has been re-sent to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));
+    drupal_set_message(t('Welcome message has been re-sent to %name at %email', array('%name' => $account->name, '%email' => $account->mail)));
+  } else {
+    watchdog('user', 'There was an error re-sending welcome message to %name at %email', array('%name' => $account->name, '%email' => $account->mail));
+    drupal_set_message(t('There was an error re-sending welcome message to %name at %email', array('%name' => $account->name, '%email' => $account->mail)), 'error');
+  }
+  $form_state['redirect'] = $destination;
+}
+
 /**
  * Form builder; confirm form for cancelling user account.
  *
