Index: modules/comment/comment.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.pages.inc,v
retrieving revision 1.4
diff -u -r1.4 comment.pages.inc
--- modules/comment/comment.pages.inc	14 May 2008 13:12:41 -0000	1.4
+++ modules/comment/comment.pages.inc	24 May 2008 17:31:09 -0000
@@ -113,3 +113,23 @@
 
   return $output;
 }
+
+/**
+ * Publish specified comment.
+ *
+ * @param $cid ID of comment to be published.
+ */
+function comment_approve($cid) {
+  // Load the comment whose cid = $cid
+  if ($comment = db_fetch_object(db_query('SELECT c.*, u.uid, u.name AS registered_name, u.signature, u.picture, u.data FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d AND c.status = %d', $cid, COMMENT_NOT_PUBLISHED))) {
+    $operations = comment_operations('publish');
+    db_query($operations['publish'][1], $cid);
+
+    drupal_set_message(t('Comment approved.'));
+    drupal_goto("node/$comment->nid");
+  }
+  else {
+    drupal_set_message(t('The comment you are approving does not exist.'), 'error');
+    drupal_goto();
+  }
+}
Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.633
diff -u -r1.633 comment.module
--- modules/comment/comment.module	14 May 2008 13:12:40 -0000	1.633
+++ modules/comment/comment.module	24 May 2008 17:31:09 -0000
@@ -212,6 +212,13 @@
     'access arguments' => array('view', 2),
     'type' => MENU_CALLBACK,
   );
+  $items['comment/approve'] = array(
+    'title' => 'Approve to comment',
+    'page callback' => 'comment_approve',
+    'page arguments' => array(2),
+    'access arguments' => array('administer comments'),
+    'type' => MENU_CALLBACK,
+  );
 
   return $items;
 }
@@ -808,6 +815,12 @@
         'title' => t('reply'),
         'href' => "comment/reply/$comment->nid/$comment->cid"
       );
+      if ($comment->status == COMMENT_NOT_PUBLISHED) {
+        $links['comment_approve'] = array(
+          'title' => t('approve'),
+          'href' => "comment/approve/$comment->cid"
+        );
+      }
     }
     elseif (user_access('post comments')) {
       if (comment_access('edit', $comment)) {
