Index: modules/comment/comment.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.test,v
retrieving revision 1.66
diff -u -r1.66 comment.test
--- modules/comment/comment.test	30 Jan 2010 07:59:24 -0000	1.66
+++ modules/comment/comment.test	3 Feb 2010 08:09:54 -0000
@@ -895,6 +895,21 @@
 
     $this->drupalGet('node/' . $this->node->nid);
     $this->assertTrue($this->commentExists($anonymous_comment4), t('Anonymous comment visible.'));
+
+    // Post 2 anonymous comments without contact info.
+    $comments[] = $this->postComment($this->node, $this->randomName(), $this->randomName(), TRUE);
+    $comments[] = $this->postComment($this->node, $this->randomName(), $this->randomName(), TRUE);
+
+    // Publish multiple comments in one operation.
+    $this->drupalLogin($this->admin_user);
+    $this->drupalGet('admin/content/comment/approval');
+    $this->assertText(t('Unapproved comments (@count)', array('@count' => 2)), t('Two unapproved comments waiting for approval.'));
+    $edit = array(
+      "comments[{$comments[0]->id}]" => 1,
+      "comments[{$comments[1]->id}]" => 1,
+    );
+    $this->drupalPost(NULL, $edit, t('Update'));
+    $this->assertText(t('Unapproved comments (@count)', array('@count' => 0)), t('All comments were approved.'));
   }
 
   /**
Index: modules/comment/comment.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.admin.inc,v
retrieving revision 1.41
diff -u -r1.41 comment.admin.inc
--- modules/comment/comment.admin.inc	30 Jan 2010 07:59:24 -0000	1.41
+++ modules/comment/comment.admin.inc	3 Feb 2010 08:09:53 -0000
@@ -155,10 +155,18 @@
 function comment_admin_overview_submit($form, &$form_state) {
   $operations = comment_operations();
   if (!empty($operations[$form_state['values']['operation']][1])) {
-    // Extract the appropriate database query operation.
-    $query = $operations[$form_state['values']['operation']][1];
     foreach ($form_state['values']['comments'] as $cid => $value) {
       if ($value) {
+        // Unfortunately, since we 'destroy' our query object
+        // by adding a condition to it that is incompatible
+        // with the condition in the next iteration, we need
+        // to re-fetch the query object with a call to
+        // comment_operations.
+        $operations = comment_operations();
+
+        // Extract the appropriate database query operation.
+        $query = $operations[$form_state['values']['operation']][1];
+
         // Perform the update action, then refresh node statistics.
         $query
           ->condition('cid', $cid )
