--- user.orig.module	2006-08-24 14:15:03.000000000 -0700
+++ user.module	2006-08-24 15:09:12.000000000 -0700
@@ -1256,7 +1256,7 @@
     return 'user/register';
   }
 
-  $account = user_save('', array_merge($form_values, array('pass' => $pass, 'init' => $mail, 'status' => ($admin || variable_get('user_register', 1) == 1))));
+  $account = user_save($form_values['_account'] ? $form_values['_account'] : '', array_merge($form_values, array('pass' => $pass, 'init' => $mail, 'status' => ($admin || variable_get('user_register', 1) == 1))));
   watchdog('user', t('New user: %name %email.', array('%name' => theme('placeholder', $name), '%email' => theme('placeholder', '<'. $mail .'>'))), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $account->uid .'/edit'));
 
   $variables = array('%username' => $name, '%site' => variable_get('site_name', 'drupal'), '%password' => $pass, '%uri' => $base_url, '%uri_brief' => substr($base_url, strlen('http://')), '%mailto' => $mail, '%date' => format_date(time()), '%login_uri' => url('user', NULL, NULL, TRUE), '%edit_uri' => url('user/'. $account->uid .'/edit', NULL, NULL, TRUE), '%login_url' => user_pass_reset_url($account));
@@ -1302,7 +1302,7 @@
 
       user_mail($mail, $subject, $body, "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from");
       user_mail(variable_get('site_mail', ini_get('sendmail_from')), $subject, t("%u has applied for an account.\n\n%uri", array('%u' => $account->name, '%uri' => url("user/$account->uid/edit", NULL, NULL, TRUE))), "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from");
-      drupal_set_message(t('Thank you for applying for an account. Your account is currently pending approval by the site administrator.<br />In the meantime, your password and further instructions have been sent to your e-mail address.'));
+      drupal_set_message(t('Thank you for applying for an account. Your account is currently pending approval by the site administrator.<br />In the meantime, a confirmation email has been sent to your e-mail address.'));
 
     }
   }
@@ -1445,6 +1445,18 @@
   $form['_account'] = array('#type' => 'value', '#value' => $account);
   $form['submit'] = array('#type' => 'submit', '#value' => t('Submit'), '#weight' => 30);
   if (user_access('administer users')) {
+    $form['resend_set'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Admin'),
+      '#collapsible' => TRUE,
+      '#collapsed' => FALSE,
+    );  
+    $form['resend_set']['resend'] = array(
+      '#type' => 'checkbox',
+      '#title' => '<strong>'.t('Resend new user account email').'</strong>',
+      '#default_value' => 0,
+      '#description' => t('Check this box if you wish to resend the new user account notification. If you have not entered in a password, the user\'s password will be re-generated and they will receive the welcome email again.')
+    );
     $form['delete'] = array('#type' => 'submit', '#value' => t('Delete'), '#weight' => 31);
   }
   $form['#attributes']['enctype'] = 'multipart/form-data';
@@ -1467,6 +1479,13 @@
 function user_edit_submit($form_id, $form_values) {
   $account = $form_values['_account'];
   $category = $form_values['_category'];
+  if ($form_values['resend']) { 
+    drupal_set_message('<strong>'.t('Resetting the user account.').'</strong>');
+    $form_values['notify'] = 1;
+    if (!$form_values['pass']) $form_values['pass'] = user_password();
+    user_register_submit($form_id, $form_values);
+		// the user info will be set twice, but this ensures any third party modules settings will be kept (such as those of tac_lite)
+  }
   unset($form_values['_account'], $form_values['submit'], $form_values['delete'], $form_values['form_id'], $form_values['_category']);
   user_module_invoke('submit', $form_values, $account, $category);
   user_save($account, $form_values, $category);
