Index: modules/forum/forum.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v
retrieving revision 1.572
diff -u -p -r1.572 forum.module
--- modules/forum/forum.module	8 Aug 2010 12:47:00 -0000	1.572
+++ modules/forum/forum.module	11 Aug 2010 08:51:10 -0000
@@ -59,7 +59,7 @@ function forum_theme() {
   return array(
     'forums' => array(
       'template' => 'forums',
-      'variables' => array('forums' => NULL, 'topics' => NULL, 'parents' => NULL, 'tid' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL),
+      'variables' => array('forum' => NULL, 'topics' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL),
     ),
     'forum_list' => array(
       'template' => 'forum-list',
@@ -956,28 +956,9 @@ function forum_get_topics($tid, $sortby,
 function template_preprocess_forums(&$variables) {
   global $user;
 
-  $vid = variable_get('forum_nav_vocabulary', 0);
-  $vocabulary = taxonomy_vocabulary_load($vid);
-  $title = !empty($vocabulary->name) ? $vocabulary->name : '';
-
-  // Breadcrumb navigation:
-  $breadcrumb[] = l(t('Home'), NULL);
-  if ($variables['tid']) {
-    $breadcrumb[] = l($vocabulary->name, 'forum');
-  }
-  if ($variables['parents']) {
-    $variables['parents'] = array_reverse($variables['parents']);
-    foreach ($variables['parents'] as $p) {
-      if ($p->tid == $variables['tid']) {
-        $title = $p->name;
-      }
-      else {
-        $breadcrumb[] = l($p->name, 'forum/' . $p->tid);
-      }
-    }
-  }
-  drupal_set_breadcrumb($breadcrumb);
-  drupal_set_title($title);
+  $variables['tid'] = $variables['forum']->tid;
+  $variables['forums'] = $variables['forum']->forums;
+  $variables['parents'] = $variables['forum']->parents;
 
   if ($variables['forums_defined'] = count($variables['forums']) || count($variables['parents'])) {
     if (!empty($variables['forums'])) {
@@ -989,7 +970,8 @@ function template_preprocess_forums(&$va
 
     if ($variables['tid'] && !in_array($variables['tid'], variable_get('forum_containers', array()))) {
       $variables['topics'] = theme('forum_topic_list', $variables);
-      drupal_add_feed('taxonomy/term/' . $variables['tid'] . '/0/feed', 'RSS - ' . $title);
+      // Add RSS feed.
+      drupal_add_feed('taxonomy/term/' . $variables['tid'] . '/0/feed', 'RSS - ' . $variables['forum']->name);
     }
     else {
       $variables['topics'] = '';
@@ -1013,7 +995,6 @@ function template_preprocess_forums(&$va
 
   }
   else {
-    drupal_set_title(t('No forums defined'));
     $variables['forums'] = '';
     $variables['topics'] = '';
   }
Index: modules/forum/forum.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/forum/forum.pages.inc,v
retrieving revision 1.4
diff -u -p -r1.4 forum.pages.inc
--- modules/forum/forum.pages.inc	28 Apr 2010 05:54:55 -0000	1.4
+++ modules/forum/forum.pages.inc	11 Aug 2010 08:51:10 -0000
@@ -15,6 +15,37 @@ function forum_page($forum_term = NULL) 
     $forum_term = forum_forum_load(0);
   }
 
+  // The page title for forum list and breadcrumbs start should be inherited
+  // from menu link title to follow menu title changes.
+  $title = menu_get_active_title();
+
+  // Breadcrumb navigation.
+  $breadcrumb[] = l(t('Home'), NULL);
+  if ($forum_term->tid) {
+    $breadcrumb[] = l($title, 'forum');
+  }
+  if ($forum_term->parents) {
+    $parents = array_reverse($forum_term->parents);
+    foreach ($parents as $p) {
+      if ($p->tid == $forum_term->tid) {
+        $title = $p->name;
+      }
+      else {
+        $breadcrumb[] = l($p->name, 'forum/' . $p->tid);
+      }
+    }
+  }
+  drupal_set_breadcrumb($breadcrumb);
+
+
+  if ($forum_term->tid) {
+    // Page title should be assigned to a viewing forum or container's name.
+    drupal_set_title($title);
+  }
+  elseif (empty($forum_term->forums) && empty($forum_term->parents)) {
+    drupal_set_title(t('No forums defined'));
+  }
+
   $forum_per_page = variable_get('forum_per_page', 25);
   $sortby = variable_get('forum_order', 1);
 
@@ -25,5 +56,10 @@ function forum_page($forum_term = NULL) 
     $topics = '';
   }
 
-  return theme('forums', array('forums' => $forum_term->forums, 'topics' => $topics, 'parents' => $forum_term->parents, 'tid' => $forum_term->tid, 'sortby' => $sortby, 'forums_per_page' => $forum_per_page));
+  return theme('forums', array(
+    'forum' => $forum_term,
+    'topics' => $topics,
+    'sortby' => $sortby,
+    'forums_per_page' => $forum_per_page,
+  ));
 }
