? 729796.patch
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1194
diff -u -p -r1.1194 user.module
--- modules/user/user.module	22 Aug 2010 13:52:59 -0000	1.1194
+++ modules/user/user.module	23 Aug 2010 10:17:54 -0000
@@ -2298,10 +2298,7 @@ function _user_cancel($edit, $account, $
       if (!empty($edit['user_cancel_notify'])) {
         _user_mail_notify('status_blocked', $account);
       }
-      db_update('users')
-        ->fields(array('status' => 0))
-        ->condition('uid', $account->uid)
-        ->execute();
+      user_save($account, array('status' => 0));
       drupal_set_message(t('%name has been disabled.', array('%name' => $account->name)));
       watchdog('user', 'Blocked user: %name %email.', array('%name' => $account->name, '%email' => '<' . $account->mail . '>'), WATCHDOG_NOTICE);
       break;
@@ -2323,9 +2320,6 @@ function _user_cancel($edit, $account, $
     // Destroy the current session, and reset $user to the anonymous user.
     session_destroy();
   }
-  else {
-    drupal_session_destroy_uid($account->uid);
-  }
 
   // Clear the cache for anonymous users.
   cache_clear_all();
@@ -2354,6 +2348,7 @@ function user_delete_multiple(array $uid
     foreach ($accounts as $uid => $account) {
       module_invoke_all('user_delete', $account);
       field_attach_delete('user', $account);
+      drupal_session_destroy_uid($account->uid);
     }
 
     db_delete('users')
@@ -3461,12 +3456,8 @@ function user_block_user_action(&$entity
   else {
     $uid = $GLOBALS['user']->uid;
   }
-  db_update('users')
-    ->fields(array('status' => 0))
-    ->condition('uid', $uid)
-    ->execute();
-  drupal_session_destroy_uid($uid);
   $account = user_load($uid);
+  $account = user_save($account, array('status' => 0));
   watchdog('action', 'Blocked user %name.', array('%name' => $account->name));
 }
 
