Index: date.field.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/date/date/date.field.inc,v
retrieving revision 1.4
diff -u -p -r1.4 date.field.inc
--- date.field.inc	2 Oct 2010 14:53:36 -0000	1.4
+++ date.field.inc	8 Oct 2010 21:19:23 -0000
@@ -46,7 +46,7 @@ function date_field_formatter_settings_f
       return date_default_formatter_settings_form($field, $instance, $view_mode, $form, $form_state);
   }
 }
- 
+
 /**
  * Implements hook_field_formatter_settings_summary().
  */
@@ -100,7 +100,7 @@ function date_field_formatter_view($enti
     'display' => $display,
     'dates' => array(),
   );
-  
+
   // See if we are only supposed to display a selected
   // item from multiple value date fields.
   $selected_deltas = array();
@@ -112,7 +112,7 @@ function date_field_formatter_view($enti
       }
     }
   }
-  
+
   switch ($display['type']) {
     case 'format_interval':
       foreach ($items as $delta => $item) {
@@ -222,7 +222,7 @@ function date_field_widget_info() {
       'default value' => FIELD_BEHAVIOR_CUSTOM,
     ),
   );
-  
+
   // Repeating dates have custom handling
   // for multiple values.
   $repeat_settings = $settings;
@@ -288,7 +288,7 @@ function date_field_load($entity_type, $
  */
 function date_field_validate($entity_type, $entity, $field, $instance, $langcode, &$items) {
   $field_name = $field['field_name'];
- 
+
   // Don't try to validate if there were any errors before this point
   // since the element won't have been munged back into a date.
   if (!form_get_errors()) {
@@ -312,7 +312,7 @@ function date_field_validate($entity_typ
               'error' => 'valid_nid',
               'message' => t("A 'To date' is required for field %field %delta.", array('%delta' => $field['cardinality'] ? intval($delta + 1) : '', '%field' => t($instance['label']))),
             );
-          }            
+          }
         }
       }
     }
@@ -350,10 +350,13 @@ function date_field_update($entity_type,
       $items[$delta]['timezone'] = date_get_timezone($field['settings']['tz_handling'], $timezone);
       $items[$delta]['timezone_db'] = date_get_timezone_db($field['settings']['tz_handling']);
       $items[$delta]['date_type'] = $field['type'];
-    }  
-  }  
-  $entity->$field['field_name'][$langcode] = $items;
+    }
+  }
 
+  $date = date_make_date($items[$delta]['value'], $granularity = array('year', 'month', 'day'));
+  $date = (int)date_format_date($date, 'custom', 'U', $langcode);
+  $items[$delta]['value'] = $date;
+  
   foreach ($values as $delta => $item) {
     if (is_array($item)) {
       // Special case for ISO dates which may have been given artificial values for
@@ -363,10 +366,10 @@ function date_field_update($entity_type,
         if ($field['settings']['todate']) {
           $items[$delta]['value2'] = date_limit_value($items[$delta]['value2'], date_granularity($field), $field['type']);
         }
-      }  
+      }
     }
   }
-  $entity->$field['field_name'][$langcode] = $items;
+  $entity->{$field['field_name']} = array($langcode => $items);
 }
 
 /**
