diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index ce84a6e343d4431655f1adfc0ea24b2d6d05fb73..7e261b52ae2e53e202f4a00e2e4f7a1e0d4882b2 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -418,10 +418,9 @@ function comment_link($type, $node = NULL, $teaser = FALSE) {
     if ($teaser) {
       // Main page: display the number of comments that have been posted.
       if (user_access('access comments')) {
-        $all = comment_num_all($node->nid);
-        if ($all) {
+        if ($node->comment_count) {
           $links['comment_comments'] = array(
-            'title' => format_plural($all, '1 comment', '@count comments'),
+            'title' => format_plural($node->comment_count, '1 comment', '@count comments'),
             'href' => "node/$node->nid",
             'attributes' => array('title' => t('Jump to the first comment of this posting.')),
             'fragment' => 'comments'
@@ -432,7 +431,7 @@ function comment_link($type, $node = NULL, $teaser = FALSE) {
             $links['comment_new_comments'] = array(
               'title' => format_plural($new, '1 new comment', '@count new comments'),
               'href' => "node/$node->nid",
-              'query' => comment_new_page_count($all, $new, $node),
+              'query' => comment_new_page_count($node->comment_count, $new, $node),
               'attributes' => array('title' => t('Jump to the first new comment of this posting.')),
               'fragment' => 'new'
             );
@@ -1085,24 +1084,6 @@ function comment_load($cid) {
   return db_fetch_object(db_query('SELECT * FROM {comments} WHERE cid = %d', $cid));
 }
 
-/**
- * Get comment count for a node.
- *
- * @param $nid
- *   The node id.
- * @return
- *   The comment count.
- */
-function comment_num_all($nid) {
-  static $cache;
-
-  if (!isset($cache[$nid])) {
-    $cache[$nid] = db_result(db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = %d', $nid));
-  }
-
-  return $cache[$nid];
-}
-
 /**
  * Get replies count for a comment.
  *
diff --git a/modules/comment/comment.test b/modules/comment/comment.test
index c1630d6ddcc9cb53a0d502301246626f259c92ce..8b17b3b871004171a4514bf607daa61d21d5c97f 100644
--- a/modules/comment/comment.test
+++ b/modules/comment/comment.test
@@ -27,7 +27,7 @@ class CommentTestCase extends DrupalWebTestCase {
     $this->web_user = $this->drupalCreateUser(array('access comments', 'post comments', 'create article content'));
 
     $this->drupalLogin($this->web_user);
-    $this->node = $this->drupalCreateNode(array('type' => 'article'));
+    $this->node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
     $this->assertTrue($this->node, t('Article node created.'));
     $this->drupalLogout();
   }
@@ -68,6 +68,10 @@ class CommentTestCase extends DrupalWebTestCase {
     $this->drupalGet('comment/edit/' . $reply->id);
     $reply = $this->postComment(NULL, $this->randomName(), $this->randomName());
     $this->assertTrue($this->commentExists($reply, TRUE), t('Modified reply found.'));
+    
+    // Correct link count
+    $this->drupalGet('node');
+    $this->assertRaw('2 comments', t('Link to the 2 comments exist.'));
 
     // Pager
     $this->setCommentsPerPage(2);