Only in privatemsg_inbox: CVS
diff -urp privatemsg_inbox/privatemsg.module privatemsg_count/privatemsg.module
--- privatemsg_inbox/privatemsg.module	2009-03-17 06:02:56.555806200 +0000
+++ privatemsg_count/privatemsg.module	2009-03-17 19:34:43.651755000 +0000
@@ -723,7 +723,7 @@ function privatemsg_sql_list(&$fragments
   if (in_array('thread_started', $fields)) {
     $fragments['select'][]      = 'MIN(pm.timestamp) as thread_started';
   }
-  $fragments['select'][]      = 'MAX(pmi.is_new) as is_new';
+  $fragments['select'][]      = 'SUM(pmi.is_new) as is_new';
   // pm_index needs to be the first join.
   $fragments['inner_join'][]  = 'INNER JOIN {pm_index} pmi ON pm.mid = pmi.mid';
   $fragments['where'][]       = 'pmi.uid = %d';
@@ -1487,7 +1487,7 @@ function _privatemsg_list_headers($has_p
 function _privatemsg_list_thread($thread) {
   $row = array('data' => array());
 
-  if (!empty($thread['is_new'])) {
+  if (!empty($thread['is_new']) && $thread['is_new'] <> 0) {
     $row['class'] = 'privatemsg-unread';
   }
   foreach ($thread as $key => $data) {
diff -urp privatemsg_inbox/privatemsg.theme.inc privatemsg_count/privatemsg.theme.inc
--- privatemsg_inbox/privatemsg.theme.inc	2009-03-09 16:41:52.087898500 +0000
+++ privatemsg_count/privatemsg.theme.inc	2009-03-17 19:52:03.828555000 +0000
@@ -19,7 +19,12 @@ function phptemplate_privatemsg_list_fie
 
 function phptemplate_privatemsg_list_field__subject($thread) {
   $field = array();
-  $field['data'] =l($thread['subject'], 'messages/view/'. $thread['thread_id']);
+  $options = array();
+  if (!empty($thread['is_new']) && $thread['is_new'] <> 0) {
+    $thread['subject'] .= format_plural($thread['is_new'], ' (1 new)', ' (@count new)');
+    $options['fragment'] = 'new';
+  }
+  $field['data'] =l($thread['subject'], 'messages/view/'. $thread['thread_id'], $options);
   $field['class'] = 'privatemsg-list-subject';
   return $field;
 }
