diff --git a/modules/blog/blog.module b/modules/blog/blog.module
index 132c554..fa9b31d 100644
--- a/modules/blog/blog.module
+++ b/modules/blog/blog.module
@@ -67,7 +67,7 @@ function blog_form($node, $form_state) {
  * Implements hook_view().
  */
 function blog_view($node, $view_mode) {
-  if (node_is_page($node)) {
+  if ($view_mode == 'page') {
     // Breadcrumb navigation.
     drupal_set_breadcrumb(array(l(t('Home'), NULL), l(t('Blogs'), 'blog'), l(t("!name's blog", array('!name' => format_username($node))), 'blog/' . $node->uid)));
   }
diff --git a/modules/book/book.module b/modules/book/book.module
index 3552998..5699a89 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -91,7 +91,7 @@ function book_node_view_link($node, $view_mode) {
   $links = array();
 
   if (isset($node->book['depth'])) {
-    if ($view_mode == 'full') {
+    if (($view_mode == 'full') || ($view_mode == 'page')) {
       $child_type = variable_get('book_child_type', 'book');
       if ((user_access('add content to books') || user_access('administer book outlines')) && node_access('create', $child_type) && $node->status == 1 && $node->book['depth'] < MENU_MAX_DEPTH) {
         $links['book_add_child'] = array(
@@ -780,7 +780,7 @@ function book_node_load($nodes, $types) {
  * Implements hook_node_view().
  */
 function book_node_view($node, $view_mode) {
-  if ($view_mode == 'full') {
+  if (($view_mode == 'full') || ($view_mode == 'page')) {
     if (!empty($node->book['bid']) && empty($node->in_preview)) {
       $node->content['book_navigation'] = array(
         '#markup' => theme('book_navigation', array('book_link' => $node->book)),
diff --git a/modules/comment/comment.api.php b/modules/comment/comment.api.php
index e1f34ec..4b08952 100644
--- a/modules/comment/comment.api.php
+++ b/modules/comment/comment.api.php
@@ -91,7 +91,7 @@ function hook_comment_view($comment) {
  */
 function hook_comment_view_alter(&$build) {
   // Check for the existence of a field added by another module.
-  if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) {
+  if ((($build['#view_mode'] == 'full') || ($build['#view_mode'] == 'page')) && isset($build['an_additional_field'])) {
     // Change its weight.
     $build['an_additional_field']['#weight'] = -10;
   }
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 4ac23e9..5a90ff3 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -687,7 +687,7 @@ function comment_node_view($node, $view_mode) {
     // page. We compare $node and $page_node to ensure that comments are not
     // appended to other nodes shown on the page, for example a node_reference
     // displayed in 'full' view mode within another node.
-    if ($node->comment && node_is_page($node) && empty($node->in_preview) && user_access('access comments')) {
+    if ($node->comment && ($view_mode == 'page') && empty($node->in_preview) && user_access('access comments')) {
       $node->content['comments'] = comment_node_page_additions($node);
     }
   }
diff --git a/modules/field/field.api.php b/modules/field/field.api.php
index 0f4078d..805b342 100644
--- a/modules/field/field.api.php
+++ b/modules/field/field.api.php
@@ -1169,7 +1169,7 @@ function hook_field_attach_purge($entity_type, $entity, $field, $instance) {
  *   An associative array containing:
  *   - entity_type: The type of $entity; for example, 'node' or 'user'.
  *   - entity: The entity with fields to render.
- *   - view_mode: View mode, for example, 'full' or 'teaser'.
+ *   - view_mode: View mode, for example, 'page', 'full' or 'teaser'.
  */
 function hook_field_attach_view_alter(&$output, $context) {
   // @todo Needs function body.
diff --git a/modules/field/theme/field.tpl.php b/modules/field/theme/field.tpl.php
index 56502f0..15e591a 100644
--- a/modules/field/theme/field.tpl.php
+++ b/modules/field/theme/field.tpl.php
@@ -27,7 +27,7 @@
  *
  * Other variables:
  * - $element['#object']: The entity to which the field is attached.
- * - $element['#view_mode']: View mode, e.g. 'full', 'teaser'...
+ * - $element['#view_mode']: View mode, e.g. 'page', 'full', 'teaser'...
  * - $element['#field_name']: The field name.
  * - $element['#field_type']: The field type.
  * - $element['#field_language']: The field language.
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index d2c72b7..75adfa9 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -277,7 +277,7 @@ function forum_node_view($node, $view_mode) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node)) {
-    if (node_is_page($node)) {
+    if ($view_mode == 'page') {
       // Breadcrumb navigation
       $breadcrumb[] = l(t('Home'), NULL);
       $breadcrumb[] = l($vocabulary->name, 'forum');
diff --git a/modules/node/node.api.php b/modules/node/node.api.php
index 81daab5..6f16c38 100644
--- a/modules/node/node.api.php
+++ b/modules/node/node.api.php
@@ -731,7 +731,7 @@ function hook_node_view($node, $view_mode) {
  * @ingroup node_api_hooks
  */
 function hook_node_view_alter(&$build) {
-  if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) {
+  if ((($build['#view_mode'] == 'full') || ($build['#view_mode'] == 'page')) && isset($build['an_additional_field'])) {
     // Change its weight.
     $build['an_additional_field']['#weight'] = -10;
   }
@@ -1125,7 +1125,7 @@ function hook_validate($node, &$form) {
  * @param $node
  *   The node to be displayed, as returned by node_load().
  * @param $view_mode
- *   View mode, e.g. 'full', 'teaser', ...
+ *   View mode, e.g. 'page', 'full', 'teaser', ...
  * @return
  *   $node. The passed $node parameter should be modified as necessary and
  *   returned so it can be properly presented. Nodes are prepared for display
@@ -1143,7 +1143,7 @@ function hook_validate($node, &$form) {
  * @ingroup node_api_hooks
  */
 function hook_view($node, $view_mode = 'full') {
-  if (node_is_page($node)) {
+  if ($view_mode == 'page') {
     $breadcrumb = array();
     $breadcrumb[] = l(t('Home'), NULL);
     $breadcrumb[] = l(t('Example'), 'example');
diff --git a/modules/node/node.module b/modules/node/node.module
index 04a4381..39f8f5c 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1180,7 +1180,7 @@ function node_revision_delete($revision_id) {
  * @param $node
  *   A node object.
  * @param $view_mode
- *   View mode, e.g. 'full', 'teaser'...
+ *   View mode, e.g. 'page', 'full', 'teaser'...
  *
  * @return
  *   An array as expected by drupal_render().
@@ -1202,7 +1202,7 @@ function node_view($node, $view_mode = 'full') {
   // displayed on its own page. Modules may alter this behavior (for example,
   // to restrict contextual links to certain view modes) by implementing
   // hook_node_view_alter().
-  if (!node_is_page($node)) {
+  if ($view_mode != 'page') {
     $build['#contextual_links']['node'] = array('node', array($node->nid));
   }
 
@@ -1220,7 +1220,8 @@ function node_view($node, $view_mode = 'full') {
  *
  * Drupal core defines the following view modes for nodes, with the following
  * default use cases:
- *   - full (default): node is being displayed on its own page (node/123)
+ *   - page: node is being displayed on its own page (node/123)
+ *   - full (default): node is being displayed with its full content
  *   - teaser: node is being displayed on the default home page listing, on
  *     taxonomy listing pages, or on blog listing pages.
  *   - rss: node displayed in an RSS feed.
@@ -1235,7 +1236,7 @@ function node_view($node, $view_mode = 'full') {
  * @param $node
  *   A node object.
  * @param $view_mode
- *   View mode, e.g. 'full', 'teaser'...
+ *   View mode, e.g. 'page', 'full', 'teaser'...
  */
 function node_build_content($node, $view_mode = 'full') {
   // Remove previously built content, if exists.
@@ -1294,18 +1295,7 @@ function node_show($node, $message = FALSE) {
   node_tag_new($node);
 
   // For markup consistency with other pages, use node_view_multiple() rather than node_view().
-  return node_view_multiple(array($node->nid => $node), 'full');
-}
-
-/**
- * Returns whether the current page is the full page view of the passed in node.
- *
- * @param $node
- *   A node object.
- */
-function node_is_page($node) {
-  $page_node = menu_get_object();
-  return (!empty($page_node) ? $page_node->nid == $node->nid : FALSE);
+  return node_view_multiple(array($node->nid => $node), 'page');
 }
 
 /**
@@ -1335,7 +1325,7 @@ function template_preprocess_node(&$variables) {
   $uri = entity_uri('node', $node);
   $variables['node_url']  = url($uri['path'], $uri['options']);
   $variables['title']     = check_plain($node->title);
-  $variables['page']      = node_is_page($node);
+  $variables['page']      = ($variables['view_mode'] == 'page');
 
   if (!empty($node->in_preview)) {
     unset($node->content['links']);
@@ -2413,7 +2403,7 @@ function node_feed($nids = FALSE, $channel = array()) {
  * @param $nodes
  *   An array of nodes as returned by node_load_multiple().
  * @param $view_mode
- *   View mode, e.g. 'full', 'teaser'...
+ *   View mode, e.g. 'page', 'full', 'teaser'...
  * @param $weight
  *   An integer representing the weight of the first node in the list.
  * @return
diff --git a/modules/node/node.tpl.php b/modules/node/node.tpl.php
index 19b5f0c..89bdb61 100644
--- a/modules/node/node.tpl.php
+++ b/modules/node/node.tpl.php
@@ -52,7 +52,7 @@
  * - $id: Position of the node. Increments each time it's output.
  *
  * Node status variables:
- * - $view_mode: View mode, e.g. 'full', 'teaser'...
+ * - $view_mode: View mode, e.g. 'page', 'full', 'teaser'...
  * - $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser').
  * - $page: Flag for the full page state.
  * - $promote: Flag for front page promotion state.
diff --git a/modules/taxonomy/taxonomy-term.tpl.php b/modules/taxonomy/taxonomy-term.tpl.php
index ec19b36..ff6a875 100644
--- a/modules/taxonomy/taxonomy-term.tpl.php
+++ b/modules/taxonomy/taxonomy-term.tpl.php
@@ -22,7 +22,7 @@
  *
  * Other variables:
  * - $term: Full term object. Contains data that may not be safe.
- * - $view_mode: View mode, e.g. 'full', 'teaser'...
+ * - $view_mode: View mode, e.g. 'page', 'full', 'teaser'...
  * - $page: Flag for the full page state.
  * - $classes_array: Array of html class attribute values. It is flattened
  *   into a string within the variable $classes.
