Index: modules/file/file.field.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/file/file.field.inc,v
retrieving revision 1.22
diff -u -r1.22 file.field.inc
--- modules/file/file.field.inc	17 Feb 2010 05:39:51 -0000	1.22
+++ modules/file/file.field.inc	9 Mar 2010 00:55:52 -0000
@@ -274,11 +274,10 @@
     $fids[] = $item['fid'];
   }
 
-  // Delete items from original object.
-  list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
-  $load_function = $entity_type . '_load';
 
-  $original = $load_function($id);
+  // Get the current values in the entity, and delete files for removed items.
+  list($id) = entity_extract_ids($entity_type, $entity);
+  $original = field_attach_load($entity_type, array($id => $entity), FIELD_LOAD_CURRENT, array('field_id' => $field['id']));
   if (!empty($original->{$field['field_name']}[$langcode])) {
     foreach ($original->{$field['field_name']}[$langcode] as $original_item) {
       if (isset($original_item['fid']) && !in_array($original_item['fid'], $fids)) {
