diff --git a/modules/file/file.field.inc b/modules/file/file.field.inc
index 2af3cb6..630f6aa 100644
--- a/modules/file/file.field.inc
+++ b/modules/file/file.field.inc
@@ -198,13 +198,14 @@ function file_field_load($entity_type, $entities, $field, $instances, $langcode,
 function file_field_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items) {
   // Remove files specified to not be displayed.
   foreach ($entities as $id => $entity) {
+    $entity_items = clone $items[$id];
     foreach ($items[$id] as $delta => $item) {
       if (!file_field_displayed($item, $field)) {
-        unset($items[$id][$delta]);
+        unset($entity_items[$delta]);
       }
     }
-    // Ensure consecutive deltas.
-    $items[$id] = array_values($items[$id]);
+    // Assign filtered items.
+    $items[$id] = $entity_items;
   }
 }
 
