diff --git a/modules/comment/comment.install b/modules/comment/comment.install
index b129299..b1e9c84 100644
--- a/modules/comment/comment.install
+++ b/modules/comment/comment.install
@@ -91,6 +91,20 @@ function comment_update_6005() {
 }
 
 /**
+ * Improve indexes on the comment table.
+ */
+function comment_update_7006() {
+  $ret = array();
+  db_drop_index($ret, 'comment', 'comment_uid');
+  db_drop_index($ret, 'comment', 'nid');
+  db_drop_index($ret, 'comment', 'pid');
+  db_drop_index($ret, 'comment', 'status');
+  db_add_index($ret, 'comment', 'comment_pid_status', array('pid', 'status'));
+  db_add_index($ret, 'comment', 'comment_num_new', array('nid', 'timestamp', 'status'));
+  return $ret;
+}
+
+/**
  * @} End of "defgroup updates-6.x-extra"
  * The next series of updates should start at 7000.
  */
@@ -193,10 +207,8 @@ function comment_schema() {
       )
     ),
     'indexes' => array(
-      'pid'    => array('pid'),
-      'nid'    => array('nid'),
-      'comment_uid'    => array('uid'),
-      'status' => array('status'), // This index is probably unused
+      'comment_status_pid' => array('pid', 'status'),
+      'comment_num_new' => array('nid', 'timestamp', 'status'),
     ),
     'primary key' => array('cid'),
   );
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 58e9ce6..70d9a83 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -1162,9 +1162,7 @@ function comment_num_new($nid, $timestamp = 0) {
     $timestamp = ($timestamp > NODE_NEW_LIMIT ? $timestamp : NODE_NEW_LIMIT);
 
     // Use the timestamp to retrieve the number of new comments.
-    $result = db_result(db_query('SELECT COUNT(c.cid) FROM {node} n INNER JOIN {comments} c ON n.nid = c.nid WHERE n.nid = %d AND timestamp > %d AND c.status = %d', $nid, $timestamp, COMMENT_PUBLISHED));
-
-    return $result;
+    return db_result(db_query('SELECT COUNT(cid) FROM {comments} WHERE nid = %d AND timestamp > %d AND status = %d', $nid, $timestamp, COMMENT_PUBLISHED));
   }
   else {
     return 0;
