Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.677
diff -u -p -r1.677 comment.module
--- modules/comment/comment.module	31 Dec 2008 12:04:36 -0000	1.677
+++ modules/comment/comment.module	31 Dec 2008 14:45:38 -0000
@@ -1061,7 +1061,7 @@ function comment_render($node, $cid = 0)
       }
     }
     // Only attempt to render comments if the node has been commented upon.
-    else {
+    elseif ($node->comment_count || user_access('administer comments')) {
 
       //TODO Convert to dynamic queries once the pager query is updated to the new DBTNG API.
 
@@ -2175,4 +2175,4 @@ function comment_ranking() {
       'arguments' => array(variable_get('node_cron_comments_scale', 0)),
     ),
   );
-}
\ No newline at end of file
+}
Index: modules/comment/comment.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.pages.inc,v
retrieving revision 1.11
diff -u -p -r1.11 comment.pages.inc
--- modules/comment/comment.pages.inc	31 Dec 2008 12:02:21 -0000	1.11
+++ modules/comment/comment.pages.inc	31 Dec 2008 14:45:38 -0000
@@ -124,15 +124,13 @@ function comment_reply($node, $pid = NUL
  */
 function comment_approve($cid) {
   // Load the comment whose cid = $cid
-  if ($comment = comment_load($cid)) {
-    $operations = comment_operations('publish');
-    $query = $operations['publish'][1];
-    $query
-      ->condition('cid', $cid )
-      ->execute();
+  if ($comment = (array) comment_load($cid)) {
+    $comment['status'] = COMMENT_PUBLISHED;
+    $comment['comment_format'] = $comment['format'];
+    comment_save($comment);
 
     drupal_set_message(t('Comment approved.'));
-    drupal_goto("node/$comment->nid");
+    drupal_goto('node/' . $comment['nid']);
   }
   else {
     drupal_set_message(t('The comment you are approving does not exist.'), 'error');
