Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1278
diff -u -p -r1.1278 node.module
--- modules/node/node.module	23 Jun 2010 02:45:35 -0000	1.1278
+++ modules/node/node.module	25 Jun 2010 08:33:16 -0000
@@ -1876,6 +1876,8 @@ function node_menu() {
     );
   }
   $items['node/%node'] = array(
+    'title callback' => 'node_page_title',
+    'title arguments' => array(1),
     'page callback' => 'node_page_view',
     'page arguments' => array(1),
     'access callback' => 'node_access',
@@ -2502,6 +2504,9 @@ function node_page_default() {
  * Menu callback; view a single node.
  */
 function node_page_view($node) {
+  // If there is a menu link to this node, the link becomes the last part
+  // of the active trail, and the link name becomes the page title.
+  // Thus, we must explicitly set the page title to be the node title.
   drupal_set_title($node->title);
   $uri = entity_uri('node', $node);
   // Set the node path as the canonical URL to prevent duplicate content.
Index: modules/node/node.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.test,v
retrieving revision 1.87
diff -u -p -r1.87 node.test
--- modules/node/node.test	24 Jun 2010 22:23:06 -0000	1.87
+++ modules/node/node.test	25 Jun 2010 08:33:16 -0000
@@ -262,6 +262,7 @@ class PageEditTestCase extends DrupalWeb
     $active = '<span class="element-invisible">' . t('(active tab)') . '</span>';
     $link_text = t('!local-task-title!active', array('!local-task-title' => t('Edit'), '!active' => $active));
     $this->assertText(strip_tags($link_text), 0, t('Edit tab found and marked active.'));
+    $this->assertLink($edit[$title_key], 0, t('Breadcrumb found.'));
     $this->assertFieldByName($title_key, $edit[$title_key], t('Title field displayed.'));
     $this->assertFieldByName($body_key, $edit[$body_key], t('Body field displayed.'));
 
