diff --git a/modules/node/node.module b/modules/node/node.module
index fe8ee51..5962ef1 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1281,12 +1281,15 @@ function node_view($node, $view_mode = 'full', $langcode = NULL) {
     $langcode = $GLOBALS['language_content']->language;
   }
 
+  // To support recursive calls, save any existing build information.
+  $existing_content = isset($node->content) ? $node->content : NULL;
+
   // Populate $node->content with a render() array.
   node_build_content($node, $view_mode, $langcode);
-
   $build = $node->content;
-  // We don't need duplicate rendering info in node->content.
-  unset($node->content);
+
+  // Reset $node->content with any existing build information.
+  $node->content = $existing_content ;
 
   $build += array(
     '#theme' => 'node',
