--- password_policy.module	Thu Jun  4 21:48:40 2009
+++ password_policy.module	Sun Oct 25 09:47:39 2009
@@ -282,11 +289,11 @@ function password_policy_user($op, &$edi
       db_query("DELETE FROM {password_policy_history} WHERE uid = %d", $account->uid);
       db_query("DELETE FROM {password_policy_expiration} WHERE uid = %d", $account->uid);
       break;
-    case "submit":
-      if ($account->status == 0 && isset($edit['status']) && $edit['status'] == 1 && user_access('unblock expired accounts')) {
+    case "update":
+      if (isset($edit['status']) && $edit['status'] != $account->status) {
         // Account is beeing unblocked.
-        _password_policy_unblock($account);
-      }
+        db_query('UPDATE {password_policy_expiration} SET unblocked = %d WHERE uid = %d', time(), $account->uid);
+      } 
       break;
   }
 }
@@ -708,18 +715,13 @@ function _password_policy_store_password
 /**
  * Unblocks the expired account.
  *
- * @param $uccount
- *   User pbject.
+ * @param $account
+ *   User object.
  */
 function _password_policy_unblock($account) {
   // Unblock the user
-  db_query("UPDATE {users} SET status = '1' WHERE uid = %d", $account->uid);
-  db_query("UPDATE {password_policy_expiration} SET unblocked = %d WHERE uid = %d", time(), $account->uid);
+  user_save($account, array('status' => 1)); 
 
-  $message = drupal_mail('user', 'password_reset', $account->mail, user_preferred_language($account), array('account' => $account, 'login_url' => user_pass_reset_url($account)));
-  if ($message['result']) {
-    watchdog('password_policy', 'Password reset instructions mailed to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));
-  }
   drupal_set_message(t('The user %name has been unblocked.', array('%name' => $account->name)));
 }
 