=== modified file 'misc/drupal.css'
--- misc/drupal.css	
+++ misc/drupal.css	
@@ -248,6 +248,9 @@
 .book-navigation .page-next {
   text-align: left;
 }
+.comment-unpublished {
+  background-color: #fff4f4;
+}
 .archive {
   margin: 1em 0 1em 0;
 }
=== modified file 'modules/comment.module'
--- modules/comment.module	
+++ modules/comment.module	
@@ -726,7 +726,14 @@
 
     if ($cid) {
       // Single comment view.
-      $result = db_query('SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d AND c.status = %d GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users', $cid, COMMENT_PUBLISHED);
+      $query = 'SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.cid = %d';
+      $query_args = array($cid);
+      if (!user_access('administer comments')) {
+        $query .= ' AND c.status = %d';
+        $query_args[] = COMMENT_PUBLISHED;
+      }
+      $query .= ' GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users';
+      $result = db_query($query, $query_args);
 
       if ($comment = db_fetch_object($result)) {
         $comment->name = $comment->uid ? $comment->registered_name : $comment->name;
@@ -735,7 +742,15 @@
     }
     else {
       // Multiple comment view
-      $query .= "SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users, c.thread FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d AND c.status = %d";
+      $query_count = 'SELECT COUNT(*) FROM {comments} WHERE nid = %d';
+      $query = 'SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.picture, u.data, c.score, c.users, c.thread, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d';
+
+      $query_args = array($nid);
+      if (!user_access('administer comments')) {
+        $query .= ' AND c.status = %d';
+        $query_count .= ' AND status = %d';
+        $query_args[] = COMMENT_PUBLISHED;
+      }
 
       $query .= ' GROUP BY c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, u.picture, c.homepage, u.uid, u.name, u.picture, u.data, c.score, c.users, c.thread';
 
@@ -827,7 +842,7 @@
       }
 
       // Start a form, for use with comment control.
-      $result = pager_query($query, $comments_per_page, 0, "SELECT COUNT(*) FROM {comments} WHERE nid = %d AND status = %d", $nid, COMMENT_PUBLISHED);
+      $result = pager_query($query, $comments_per_page, 0, $query_count, $query_args);
       if (db_num_rows($result) && (variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_ABOVE || variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_ABOVE_BELOW)) {
         $output .= comment_controls($mode, $order, $comments_per_page);
       }
@@ -1531,7 +1546,7 @@
 }
 
 function theme_comment($comment, $links = array()) {
-  $output  = '<div class="comment">';
+  $output  = '<div class="comment'. ($comment->status == COMMENT_NOT_PUBLISHED ? ' comment-unpublished' : '') .'">';
   $output .= '<div class="subject">'. l($comment->subject, $_GET['q'], NULL, NULL, "comment-$comment->cid") . ' ' . theme('mark', $comment->new) ."</div>\n";
   $output .= '<div class="credit">'. t('by %a on %b', array('%a' => theme('username', $comment), '%b' => format_date($comment->timestamp))) ."</div>\n";
   $output .= '<div class="body">'. $comment->comment .'</div>';
=== modified file 'themes/bluemarine/comment.tpl.php'
--- themes/bluemarine/comment.tpl.php	
+++ themes/bluemarine/comment.tpl.php	
@@ -1,4 +1,4 @@
-  <div class="comment">
+  <div class="comment<?php if ($comment->status == COMMENT_NOT_PUBLISHED) print ' comment-unpublished'; ?>">
     <?php if ($picture) {
     print $picture;
   } ?>
=== modified file 'themes/chameleon/chameleon.theme'
--- themes/chameleon/chameleon.theme	
+++ themes/chameleon/chameleon.theme	
@@ -154,7 +154,7 @@
 function chameleon_comment($comment, $links = "") {
   $submitted = array(t('By %author at %date', array('%author' => theme('username', $comment), '%date' => format_date($comment->timestamp. 'small'))));
 
-  $output  = "<div class=\"comment\">\n";
+  $output  = "<div class=\"comment". ($comment->status == COMMENT_NOT_PUBLISHED ? ' comment-unpublished' : '') ."\">\n";
   $output .= " <h3 class=\"title\">". l($comment->subject, $_GET['q'], NULL, NULL, "comment-$comment->cid") ."</h3>\n";
   $output .= " <div class=\"content\">". $comment->comment ."</div>\n";
   $output .= " <div class=\"links\">". theme('links', array_merge($submitted, $links)) ."</div>\n";
=== modified file 'themes/engines/phptemplate/comment.tpl.php'
--- themes/engines/phptemplate/comment.tpl.php	
+++ themes/engines/phptemplate/comment.tpl.php	
@@ -1,4 +1,4 @@
-<div class="comment <?php print ($comment->new) ? 'comment-new' : '' ?>">
+<div class="comment<?php print ($comment->new) ? ' comment-new' : ''; print ($comment->status == COMMENT_NOT_PUBLISHED) ? ' comment-unpublished' : ''; ?>">
 <?php if ($comment->new) : ?>
   <a id="new"></a>
   <span class="new"><?php print $new ?></span>
=== modified file 'themes/pushbutton/comment.tpl.php'
--- themes/pushbutton/comment.tpl.php	
+++ themes/pushbutton/comment.tpl.php	
@@ -1,4 +1,4 @@
-<div class="comment">
+<div class="comment<?php if ($comment->status == COMMENT_NOT_PUBLISHED) print ' comment-unpublished'; ?>">
   <?php if ($picture) : ?>
     <?php print $picture ?>
   <?php endif; ?>
