Index: modules/forum/forum.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v
retrieving revision 1.575
diff -u -p -r1.575 forum.module
--- modules/forum/forum.module	7 Sep 2010 23:39:08 -0000	1.575
+++ modules/forum/forum.module	20 Sep 2010 18:48:37 -0000
@@ -167,9 +167,9 @@ function forum_menu() {
 function forum_menu_local_tasks_alter(&$data, $router_item, $root_path) {
   global $user;
 
-  // Add action link to 'node/add/forum' on 'forum' page.
-  if ($root_path == 'forum') {
-    $tid = (isset($router_item['page_arguments'][0]) ? $router_item['page_arguments'][0] : 0);
+  // Add action link to 'node/add/forum' on 'forum' sub-pages.
+  if ($root_path == 'forum' || $root_path == 'forum/%') {
+    $tid = (isset($router_item['page_arguments'][0]) ? $router_item['page_arguments'][0]->tid : 0);
     $forum_term = forum_forum_load($tid);
     if ($forum_term) {
       $vid = variable_get('forum_nav_vocabulary', 0);
@@ -603,7 +603,7 @@ function forum_form_alter(&$form, $form_
       $form['advanced']['parent']['#access'] = FALSE;
     }
   }
-  if ($form_id == 'forum_node_form') {
+  if (!empty($form['#node_edit_form']) && isset($form['taxonomy_forums'])) {
     $langcode = $form['taxonomy_forums']['#language'];
     // Make the vocabulary required for 'real' forum-nodes.
     $form['taxonomy_forums'][$langcode]['#required'] = TRUE;
Index: modules/forum/forum.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.test,v
retrieving revision 1.62
diff -u -p -r1.62 forum.test
--- modules/forum/forum.test	30 Aug 2010 00:22:03 -0000	1.62
+++ modules/forum/forum.test	20 Sep 2010 18:48:37 -0000
@@ -48,6 +48,10 @@ class ForumTestCase extends DrupalWebTes
     // Login an unprivileged user to view the forum topics and generate an
     // active forum topics list.
     $this->drupalLogin($this->web_user);
+    // Verify that this user is shown a message that they may not post content.
+    $this->drupalGet('/forum/' . $this->forum['tid']);
+    $this->assertText(t('You are not allowed to post new content in the forum'), "Authenticated user without permission to post forum content is shown message in local tasks to that effect.");
+
     $this->viewForumTopics($this->nids);
 
     // Log in, and do basic tests for a user with permission to edit any forum
@@ -64,6 +68,12 @@ class ForumTestCase extends DrupalWebTes
     // Verify that this user cannot edit forum content authored by another user.
     $this->verifyForums($this->edit_any_topics_user, $any_topics_user_node, FALSE, 403);
 
+    // Verify that this user is shown a local task to add new forum content.
+    $this->drupalGet('/forum');
+    $this->assertLink(t('Add new Forum topic'));
+    $this->drupalGet('/forum/' . $this->forum['tid']);
+    $this->assertLink(t('Add new Forum topic'));
+
     // Login a user with permission to edit any forum content.
     $this->drupalLogin($this->edit_any_topics_user);
     // Verify that this user can edit forum content authored by another user.
