diff -ur old_comment/comment.module comment/comment.module
--- old_comment/comment.module	2007-07-03 01:26:50.768042344 -0400
+++ comment/comment.module	2007-07-03 02:18:49.720299762 -0400
@@ -178,8 +178,8 @@
     'comment_thread_expanded' => array(
       'arguments' => array('comment' => NULL, 'node' => NULL),
     ),
-    'comment_post_forbidden' => array(
-      'arguments' => array('nid' => NULL),
+    'comment_forbidden' => array(
+      'arguments' => array('nid' => NULL, 'forbid_action' => 'post'),
     ),
     'comment_wrapper' => array(
       'arguments' => array('content' => NULL),
@@ -348,14 +348,16 @@
 function comment_link($type, $node = NULL, $teaser = FALSE) {
   $links = array();
 
+  $user_can_access = user_access('access comments');
+  $user_can_post = user_access('post comments');
+
   if ($type == 'node' && $node->comment) {
 
     if ($teaser) {
       // Main page: display the number of comments that have been posted.
 
-      if (user_access('access comments')) {
-        $all = comment_num_all($node->nid);
-
+      $all = comment_num_all($node->nid);
+      if ($user_can_access) {
         if ($all) {
           $links['comment_comments'] = array(
             'title' => format_plural($all, '1 comment', '@count comments'),
@@ -377,7 +379,7 @@
         }
         else {
           if ($node->comment == COMMENT_NODE_READ_WRITE) {
-            if (user_access('post comments')) {
+            if ($user_can_post) {
               $links['comment_add'] = array(
                 'title' => t('Add new comment'),
                 'href' => "comment/reply/$node->nid",
@@ -386,18 +388,22 @@
               );
             }
             else {
-              $links['comment_forbidden']['title'] = theme('comment_post_forbidden', $node->nid);
+              $links['comment_forbidden']['title'] = theme('comment_forbidden', $node->nid, 'post');
             }
           }
         }
       }
+      else {
+        // Change link message determined by whether the node has comments
+        $links['comment_forbidden']['title'] = $all ? theme('comment_forbidden', $node->nid, 'view') : theme('comment_forbidden', $node->nid, 'post');
+      }
     }
     else {
       // Node page: add a "post comment" link if the user is allowed to
       // post comments, if this node is not read-only, and if the comment form isn't already shown
 
       if ($node->comment == COMMENT_NODE_READ_WRITE) {
-        if (user_access('post comments')) {
+        if ($user_can_post) {
           if (variable_get('comment_form_location', COMMENT_FORM_SEPARATE_PAGE) == COMMENT_FORM_SEPARATE_PAGE) {
             $links['comment_add'] = array(
               'title' => t('Add new comment'),
@@ -408,7 +414,7 @@
           }
         }
         else {
-          $links['comment_forbidden']['title'] = theme('comment_post_forbidden', $node->nid);
+          $links['comment_forbidden']['title'] = theme('comment_forbidden', $node->nid, 'post');
         }
       }
     }
@@ -889,7 +895,7 @@
       );
     }
     else {
-      $links['comment_forbidden']['title'] = theme('comment_post_forbidden', $comment->nid);
+      $links['comment_forbidden']['title'] = theme('comment_forbidden', $comment->nid);
     }
   }
 
@@ -1888,10 +1894,12 @@
   return $output;
 }
 
-function theme_comment_post_forbidden($nid) {
+function theme_comment_forbidden($nid, $forbid_action = 'post') {
   global $user;
+  $forbid_action == 'post' ? $forbid_action = t('post') : $forbid_action = t('view');
+
   if ($user->uid) {
-    return t("you can't post comments");
+    return $forbid_action == 'post' ? t("you can't post comments") : t("you can't view comments");
   }
   else {
     // we cannot use drupal_get_destination() because these links sometimes appear on /node and taxo listing pages
@@ -1903,7 +1911,7 @@
     }
 
     if (variable_get('user_register', 1)) {
-      return t('<a href="@login">Login</a> or <a href="@register">register</a> to post comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination))));
+      return $forbid_action == 'post' ? t('<a href="@login">Login</a> or <a href="@register">register</a> to post comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination)))) : t('<a href="@login">Login</a> or <a href="@register">register</a> to view comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination))));
     }
     else {
       return t('<a href="@login">Login</a> to post comments', array('@login' => url('user/login', array('query' => $destination))));
