diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index e61d47be764146361b43aa75b524514078a423ef..b88e04928e4eb6cd7534da50b864f006b4322114 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -623,7 +623,7 @@ function forum_get_forums($tid = 0) {
   if (count($_forums)) {
     $query = db_select('node', 'n');
     $query->join('node_comment_statistics', 'ncs', 'n.nid = ncs.nid');
-    $query->join('forum', 'f', 'f.vid = f.vid');
+    $query->join('forum', 'f', 'n.vid = f.vid');
     $query->addExpression('COUNT(n.nid)', 'topic_count');
     $query->addExpression('SUM(ncs.comment_count)', 'comment_count');
     $counts = $query
diff --git a/modules/forum/forum.test b/modules/forum/forum.test
index 9da887f56dd901a6538a160f6116fe3602320891..9faaad0f01de50380e0b3ee4042965b0035927ca 100644
--- a/modules/forum/forum.test
+++ b/modules/forum/forum.test
@@ -63,6 +63,11 @@ class ForumTestCase extends DrupalWebTestCase {
     $this->drupalLogin($this->any_user);
     // Verify the any forum user has access to all the forum nodes.
     $this->verifyForums($this->own_user, $node, TRUE);
+
+    // Verify the topic and post counts on the forum page.
+    $this->drupalGet('forum');
+    $this->assertRaw("<td class=\"topics\">\n          6                  </td>");
+    $this->assertRaw('<td class="posts">6</td>');
   }
 
   /**