Index: privatemsg_filter/privatemsg_filter.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg_filter/privatemsg_filter.module,v
retrieving revision 1.1.2.23
diff -u -p -r1.1.2.23 privatemsg_filter.module
--- privatemsg_filter/privatemsg_filter.module	25 Oct 2009 23:19:56 -0000	1.1.2.23
+++ privatemsg_filter/privatemsg_filter.module	29 Oct 2009 14:46:54 -0000
@@ -551,7 +551,7 @@ function privatemsg_filter_privatemsg_sq
     $fragments['query_args']['where'][]   = $account->uid;
   }
   if ($argument == 'inbox') {
-    $fragments['having'][]       = '((SELECT pmf.author FROM {pm_message} pmf WHERE pmf.mid = pmi.thread_id) = %d AND COUNT(pmi.thread_id) > 1) OR (SELECT pmf.author FROM {pm_message} pmf WHERE pmf.mid = pmi.thread_id) <> %d';
+    $fragments['having'][]       = '((SELECT pmf.author FROM {pm_message} pmf WHERE pmf.mid = pmi.thread_id) = %d AND COUNT(pmi.thread_id) > 1) OR (SELECT COUNT(*) FROM {pm_message} pmf INNER JOIN {pm_index} pmif ON (pmf.mid = pmif.mid) WHERE pmif.thread_id = pmi.thread_id AND pmf.author <> %d) > 0';
     $fragments['query_args']['having'][]   = $account->uid;
     $fragments['query_args']['having'][]   = $account->uid;
   }
Index: privatemsg_filter/privatemsg_filter.test
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg_filter/Attic/privatemsg_filter.test,v
retrieving revision 1.1.2.3
diff -u -p -r1.1.2.3 privatemsg_filter.test
--- privatemsg_filter/privatemsg_filter.test	16 Oct 2009 13:30:22 -0000	1.1.2.3
+++ privatemsg_filter/privatemsg_filter.test	29 Oct 2009 14:46:54 -0000
@@ -25,7 +25,7 @@ class PrivatemsgFilterTestCase extends D
    * Test correct handling of read all permissions.
    */
   function testInboxSentHandling() {
-    $author    = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
+    $author    = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg', 'delete privatemsg'));
     $recipient = $this->drupalCreateUser(array('write privatemsg', 'read privatemsg'));
 
     // Create new message.
@@ -70,6 +70,31 @@ class PrivatemsgFilterTestCase extends D
     $this->drupalLogin($author);
     $this->drupalGet('messages');
     $this->assertText($edit['subject'], t('Thread displayed in inbox for author.'));
+
+    // Test for bug http://drupal.org/node/617648
+    // Delete all messages for author.
+    $delete = array(
+        'threads[1]' => 1,
+    );
+    $this->drupalPost(NULL, $delete, t('Delete'));
+    $this->assertNoText($edit['subject'], t('Thread has been deleted for author.'));
+
+    // Write a reply as recipient.
+    $this->drupalLogin($recipient);
+    $this->drupalGet('messages');
+
+    // Navigate to the new message.
+    $this->clickLink($edit['subject']);
+    $response = array(
+      'body' => $this->randomName(100),
+    );
+    $this->drupalPost(NULL, $response, t('Send message'));
+    $this->assertText(t('A message has been sent to @recipients.', array('@recipients' => $author->name)), t('Message sent confirmation displayed'));
+
+    // Check if thread is visible again for author.
+    $this->drupalLogin($author);
+    $this->drupalGet('messages');
+    $this->assertText($edit['subject'], t('Thread displayed again in inbox for author.'));
   }
 }
 
