Index: modules/field/field.attach.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.attach.inc,v
retrieving revision 1.22
diff -u -p -r1.22 field.attach.inc
--- modules/field/field.attach.inc	7 Jun 2009 00:00:57 -0000	1.22
+++ modules/field/field.attach.inc	16 Jun 2009 17:00:46 -0000
@@ -468,6 +468,21 @@ function field_attach_load($obj_type, $o
 }
 
 /**
+ * Allow field modules to act on fieldable objects prior to rendering.
+ */
+function field_attach_pre_render($obj_type, $objects) {
+
+  // Invoke field-type module's hook_field_pre_render().
+  _field_invoke_multiple('pre_render', $obj_type, $queried_objects, $age);
+
+  // Allow other modules to act on the objects prior to rendering.
+  foreach (module_implements('field_attach_pre_render') as $module) {
+    $function = $module . '_field_attach_load';
+    $function($obj_type, $queried_objects, $age);
+  }
+}
+
+/**
  * Load all fields for a previous version of each of a set of
  * objects of a single object type.
  *
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.1070
diff -u -p -r1.1070 node.module
--- modules/node/node.module	12 Jun 2009 08:39:38 -0000	1.1070
+++ modules/node/node.module	16 Jun 2009 17:00:48 -0000
@@ -2001,6 +2001,7 @@ function node_feed($nids = FALSE, $chann
  *   An array in the format expected by drupal_render().
  */
 function node_build_multiple($nodes, $teaser = TRUE, $weight = 0) {
+  field_attach_pre_render('node', $nodes);
   $build = array();
   foreach ($nodes as $node) {
     $build['nodes'][$node->nid] = node_build($node, $teaser);
