Index: includes/common.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/common.inc,v retrieving revision 1.841 diff -u -p -r1.841 common.inc --- includes/common.inc 30 Dec 2008 16:43:14 -0000 1.841 +++ includes/common.inc 3 Jan 2009 02:11:29 -0000 @@ -3188,9 +3188,10 @@ function drupal_alter($type, &$data) { * The rendered HTML. */ function drupal_render(&$elements) { - if (!isset($elements) || (isset($elements['#access']) && !$elements['#access'])) { + if (!isset($elements) || (isset($elements['#access']) && !$elements['#access']) || isset($elements['#rendered'])) { return NULL; } + $elements['#rendered'] = TRUE; // If the default values for this element haven't been loaded yet, populate // them. Index: includes/theme.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/theme.inc,v retrieving revision 1.458 diff -u -p -r1.458 theme.inc --- includes/theme.inc 31 Dec 2008 12:02:21 -0000 1.458 +++ includes/theme.inc 3 Jan 2009 02:11:30 -0000 @@ -1991,12 +1991,21 @@ function template_preprocess_node(&$vari // Render taxonomy links separately. $variables['terms'] = !empty($node->content['links']['terms']) ? drupal_render($node->content['links']['terms']) : ''; - + if ($variables['terms']) { + unset($node->content['links']['terms']); + } + // Render all remaining node links. $variables['links'] = !empty($node->content['links']) ? drupal_render($node->content['links']) : ''; + if ($variables['links']) { + unset($node->content['links']); + } // Render any comments. $variables['comments'] = !empty($node->content['comments']) ? drupal_render($node->content['comments']) : ''; + if ($variables['comments']) { + unset($node->content['comments']); + } // Render the rest of the node into $content. if (!empty($node->content['teaser'])) {