diff --git a/project_issue.module b/project_issue.module
index 3682769..422f28b 100644
--- a/project_issue.module
+++ b/project_issue.module
@@ -1045,11 +1045,23 @@ function template_preprocess_project_issue_issue_jump_links(&$variables) {
 
   // Link to the first unread comment
   if (comment_num_new($node->nid)) {
-    $links['first_unread_link'] = l(t('First unread comment'), "node/$node->nid", array('fragment' => 'new'));
+    $timestamp = node_last_viewed($node->nid);
+    $timestamp = ($timestamp > NODE_NEW_LIMIT ? $timestamp : NODE_NEW_LIMIT);
+
+    $query = db_select('comment', 'c')
+      ->fields('c', array('cid'))
+      ->condition('c.nid', $node->nid)
+      ->condition('c.created', $timestamp, '>')
+      ->condition('c.status', COMMENT_PUBLISHED)
+      ->orderBy('c.cid')
+      ->range(0, 1);
+    $last_unread_cid = $query->execute()->fetchField();
+
+    $links['first_unread_link'] = l(t('First unread comment'), "comment/$last_unread_cid", array('fragment' => "comment-{$last_unread_cid}"));
   }
   // Link to the most recent comment
   if (!empty($node->cid)) {
-    $links['most_recent_link'] = l(t('Most recent comment'), "node/$node->nid", array('fragment' => "comment-{$node->cid}"));
+    $links['most_recent_link'] = l(t('Most recent comment'), "comment/$node->cid", array('fragment' => "comment-{$node->cid}"));
   }
   // Link to the most recent patch
   if (!empty($node->field_issue_files)) {
