Index: privatemsg.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/privatemsg/privatemsg.module,v retrieving revision 1.70.2.30.2.91.2.81 diff -u -p -r1.70.2.30.2.91.2.81 privatemsg.module --- privatemsg.module 27 Oct 2009 11:31:34 -0000 1.70.2.30.2.91.2.81 +++ privatemsg.module 31 Oct 2009 12:14:33 -0000 @@ -1756,7 +1756,10 @@ function privatemsg_message_load_multipl $messages = array(); while ($message = db_fetch_array($result)) { // Load author of message. - $message['author'] = user_load($message['author']); + if (!($message['author'] = user_load($message['author']))) { + // If the user does not exist, hide this message. + continue; + } $returned = module_invoke_all('privatemsg_message_load', $message); if (!empty($returned)) { $message = array_merge_recursive($returned, $message); Index: privatemsg.test =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/privatemsg/privatemsg.test,v retrieving revision 1.2.2.6 diff -u -p -r1.2.2.6 privatemsg.test --- privatemsg.test 27 Oct 2009 11:31:35 -0000 1.2.2.6 +++ privatemsg.test 31 Oct 2009 12:14:33 -0000 @@ -400,6 +400,16 @@ class PrivatemsgTestCase extends DrupalW $this->assertText($body1, 'First message is still displayed'); $this->assertNoText($body2, 'Second message has been deleted for all users'); + // Check that messages of deleted users are hidden. + $edit = array('body' => $this->randomName(100)); + $this->drupalPost(NULL, $edit, t('Send message')); + + $this->drupalLogin($admin); + $this->drupalGet('messages/view/' . $return['message']['thread_id']); + $this->assertText($edit['body'], t('New reply is displayed')); + user_delete(array(), $recipient2->uid); + $this->drupalGet('messages/view/' . $return['message']['thread_id']); + $this->assertNoText($edit['body'], t('Reply of deleted users is not displayed anymore')); } /**