Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.70.2.30.2.91.2.43
diff -u -p -r1.70.2.30.2.91.2.43 privatemsg.module
--- privatemsg.module	23 Apr 2009 00:18:36 -0000	1.70.2.30.2.91.2.43
+++ privatemsg.module	25 Apr 2009 10:57:44 -0000
@@ -277,8 +277,8 @@ function privatemsg_thread_load($thread_
     // Load the list of participants.
     $query = _privatemsg_assemble_query('participants', $thread_id);
     $participants = db_query($query['query']);
-    while ($result = db_fetch_array($participants)) {
-      $thread['participants'][$result['uid']] = user_load($result['uid']);
+    while ($participant = db_fetch_object($participants)) {
+      $thread['participants'][$participant->uid] = $participant;
     }
     return $thread;
   }
@@ -841,10 +841,21 @@ function privatemsg_sql_messages(&$fragm
   $fragments['order_by'][]    = 'pmi.mid ASC';
 }
 
+/**
+ * Load all participants of a thread.
+ *
+ * @param $fragments
+ *   Query fragments array.
+ * @param $thread_id
+ *   Thread id from which the participants should be loaded.
+ */
 function privatemsg_sql_participants(&$fragments, $thread_id) {
   $fragments['primary_table'] = '{pm_index} pmi';
 
-  $fragments['select'][]      = 'DISTINCT(pmi.uid) as uid';
+  $fragments['select'][]      = 'DISTINCT(pmi.uid) AS uid';
+  $fragments['select'][]      = 'u.name AS name';
+
+  $fragments['inner_join'][]  = 'INNER JOIN {users} u ON (u.uid = pmi.uid)';
   $fragments['where'][]       = 'pmi.thread_id = %d';
   $fragments['query_args']['where'][]  = $thread_id;
 }
