diff --git modules/forum/forum-submitted.tpl.php modules/forum/forum-submitted.tpl.php
index 85d8cdf..0555afe 100644
--- modules/forum/forum-submitted.tpl.php
+++ modules/forum/forum-submitted.tpl.php
@@ -8,8 +8,10 @@
  *
  * Available variables:
  *
+ * - $page: Flag for the forum list view.
  * - $author: The author of the post.
  * - $time: How long ago the post was created.
+ * - $title: A truncated & linked version of the post title.
  * - $topic: An object with the raw data of the post. Unsafe, be sure
  *   to clean this data before printing.
  *
@@ -18,11 +20,20 @@
  */
 ?>
 <?php if ($time): ?>
-  <?php print t(
-  '@time ago<br />by !author', array(
-    '@time' => $time,
-    '!author' => $author,
-    )); ?>
+  <?php if ($page == 0): ?>
+    <?php print t(
+      '<span class="submitted">!title<br />By !author @time ago</span>', array(
+        '!title' => $title,
+        '@time' => $time,
+        '!author' => $author,
+        )); ?>
+  <?php else: ?>
+    <?php print t(
+      '<span class="submitted">By !author @time ago</span>', array(
+        '@time' => $time,
+        '!author' => $author,
+        )); ?>
+  <?php endif; ?>
 <?php else: ?>
   <?php print t('n/a'); ?>
 <?php endif; ?>
diff --git modules/forum/forum.module modules/forum/forum.module
index fc4d603..d6b8972 100644
--- modules/forum/forum.module
+++ modules/forum/forum.module
@@ -59,7 +59,7 @@ function forum_theme() {
     ),
     'forum_submitted' => array(
       'template' => 'forum-submitted',
-      'arguments' => array('topic' => NULL),
+      'arguments' => array('topic' => NULL, 'page' => NULL),
     ),
   );
 }
@@ -610,15 +610,21 @@ function forum_get_forums($tid = 0) {
     // This query does not use full ANSI syntax since MySQL 3.x does not support
     // table1 INNER JOIN table2 INNER JOIN table3 ON table2_criteria ON table3_criteria
     // used to join node_comment_statistics to users.
-    $sql = "SELECT ncs.last_comment_timestamp, IF (ncs.last_comment_uid != 0, u2.name, ncs.last_comment_name) AS last_comment_name, ncs.last_comment_uid FROM {node} n INNER JOIN {users} u1 ON n.uid = u1.uid INNER JOIN {taxonomy_term_node} tn ON n.vid = tn.vid INNER JOIN {node_comment_statistics} ncs ON n.nid = ncs.nid INNER JOIN {users} u2 ON ncs.last_comment_uid=u2.uid WHERE n.status = 1 AND tn.tid = %d ORDER BY ncs.last_comment_timestamp DESC";
+    $sql = "SELECT n.nid, n.title, n.type, ncs.comment_count, ncs.last_comment_timestamp, IF (ncs.last_comment_uid != 0, u2.name, ncs.last_comment_name) AS last_comment_name, ncs.last_comment_uid FROM {node} n INNER JOIN {users} u1 ON n.uid = u1.uid INNER JOIN {taxonomy_term_node} tn ON n.vid = tn.vid INNER JOIN {node_comment_statistics} ncs ON n.nid = ncs.nid INNER JOIN {users} u2 ON ncs.last_comment_uid=u2.uid WHERE n.status = 1 AND tn.tid = %d ORDER BY ncs.last_comment_timestamp DESC";
     $sql = db_rewrite_sql($sql);
     $topic = db_fetch_object(db_query_range($sql, $forum->tid, 0, 1));
 
     $last_post = new stdClass();
     if (!empty($topic->last_comment_timestamp)) {
+      $history = _forum_user_last_visit($topic->nid);
+      $last_post->nid = $topic->nid;
+      $last_post->title = $topic->title;
+      $last_post->type = $topic->type;
       $last_post->timestamp = $topic->last_comment_timestamp;
       $last_post->name = $topic->last_comment_name;
       $last_post->uid = $topic->last_comment_uid;
+      $last_post->num_comments = $topic->comment_count;
+      $last_post->new_replies = comment_num_new($topic->nid, $history);
     }
     $forum->last_post = $last_post;
 
@@ -886,8 +892,8 @@ function template_preprocess_forum_topic_list(&$variables) {
         $variables['topics'][$id]->title = l($topic->title, "node/$topic->nid");
         $variables['topics'][$id]->message = '';
       }
-      $variables['topics'][$id]->created = theme('forum_submitted', $topic);
-      $variables['topics'][$id]->last_reply = theme('forum_submitted', isset($topic->last_reply) ? $topic->last_reply : NULL);
+      $variables['topics'][$id]->created = theme('forum_submitted', $topic, TRUE);
+      $variables['topics'][$id]->last_reply = theme('forum_submitted', isset($topic->last_reply) ? $topic->last_reply : NULL, TRUE);
 
       $variables['topics'][$id]->new_text = '';
       $variables['topics'][$id]->new_url = '';
@@ -985,6 +991,21 @@ function template_preprocess_forum_topic_navigation(&$variables) {
 function template_preprocess_forum_submitted(&$variables) {
   $variables['author'] = isset($variables['topic']->uid) ? theme('username', $variables['topic']) : '';
   $variables['time'] = isset($variables['topic']->timestamp) ? format_interval(REQUEST_TIME - $variables['topic']->timestamp) : '';
+  if ($variables['page'] === NULL) {
+    // Pass on the last post information for forum category listings.
+    $nid = isset($variables['topic']->nid) ? $variables['topic']->nid : NULL;
+    $title = isset($variables['topic']->title) ? $variables['topic']->title : NULL;
+    $new_replies = isset($variables['topic']->new_replies) ? $variables['topic']->new_replies : NULL;
+    $options = array();
+    if ($new_replies) {
+      $num_comments = isset($variables['topic']->num_comments) ? $variables['topic']->num_comments : NULL;
+      $options = array(
+        'query' => comment_new_page_count($num_comments, $new_replies, $variables['topic']),
+        'fragment' => 'new'
+      );
+    }
+    $variables['title'] = l(truncate_utf8($title, 35, TRUE, TRUE), "node/$nid", $options);
+  }
 }
 
 function _forum_user_last_visit($nid) {
