--- date.module.orig	2009-05-11 04:23:56.000000000 +0200
+++ date.module	2009-05-16 13:43:26.875000000 +0200
@@ -572,12 +572,13 @@ function date_views_api() {
 /**
  * Helper function to adapt node date fields to formatter settings.
  */
-function date_prepare_node($node, $field, $type_name, $context, $options) {
+function date_prepare_node(&$node, $field, $type_name, $context, $options) {
   static $prepared_node = array();
   
   // No need to do this over and over for every item in a normal node view.
   if (empty($node->view) && isset($node->content) && !empty($prepared_node) && 
     array_key_exists($field['field_name'], $prepared_node) && 
+    $prepared_node[$field['field_name'].'_context'] == $context &&
     $prepared_node[$field['field_name']]->nid == $node->nid) {
     return $prepared_node[$field['field_name']];
   }
@@ -592,6 +593,7 @@ function date_prepare_node($node, $field
   if (is_numeric($max_count) && $max_count == 0) {
     $node->{$field_name} = array();
     $prepared_node[$field_name] = $node;
+    $prepared_node[$field['field_name'].'_context'] = $context;
     return $node;
   }
   
@@ -633,6 +635,7 @@ function date_prepare_node($node, $field
     }
   }
   $prepared_node[$field['field_name']] = $node;
+  $prepared_node[$field['field_name'].'_context'] = $context;
   return $node;
 }
 
