Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.102
diff -u -r1.102 privatemsg.module
--- privatemsg.module	12 Dec 2008 21:28:04 -0000	1.102
+++ privatemsg.module	13 Dec 2008 00:13:25 -0000
@@ -346,13 +346,19 @@
  * Return number of unread messages for an account.
  */
 function privatemsg_unread_count($account = NULL) {
+  static $unread;
+
+  if (isset($unread)) {
+      return $unread;
+  }
+
   privatemsg_setup_includes();
   if (!$account || $account->uid == 0) {
     global $user;
     $account = $user;
   }
   $query = _privatemsg_assemble_query('privatemsg_unread_count', $account);
-  return db_result(db_query($query['query']));
+  return $unread = db_result(db_query($query['query']));
 }
 
 /**
@@ -755,6 +761,7 @@
   $fragments['primary_table'] = '{pm_index} pmi';
 
   $fragments['select'][]      = 'COUNT(DISTINCT thread_id) as unread_count';
+  $fragments['where'][]       = 'pmi.deleted = 0';
   $fragments['where'][]       = 'pmi.is_new = 1';
   $fragments['where'][]       = 'pmi.uid = %d';
   $fragments['query_args'][]  = $account->uid;

