diff --git a/includes/media.fields.inc b/includes/media.fields.inc
index 927eec7..42c7120 100644
--- a/includes/media.fields.inc
+++ b/includes/media.fields.inc
@@ -115,7 +115,7 @@ function media_field_prepare_view($entity_type, $entities, $field, $instances, $
   foreach ($entities as $id => $entity) {
     foreach ($items[$id] as $delta => $item) {
       if (is_array($item) && !empty($item['fid'])) {
-        $items[$id][$delta] = $files[$item['fid']];
+        $items[$id][$delta]['file'] = $files[$item['fid']];
       }
     }
   }
@@ -131,7 +131,7 @@ function media_field_formatter_view($entity_type, $entity, $field, $instance, $l
     foreach ($items as $delta => $item) {
       $element[$delta] = array(
         '#theme' => 'media_formatter_large_icon',
-        '#file' => $item,
+        '#file' => $item['file'],
       );
     }
     return $element;
@@ -140,8 +140,8 @@ function media_field_formatter_view($entity_type, $entity, $field, $instance, $l
   // @todo media_field_prepare_view() ensures that $items is an array of loaded
   //   files, but that will need to change. See that function for details.
   $files = array();
-  foreach ($items as $file) {
-    $files[$file->fid] = $file;
+  foreach ($items as $delta => $item) {
+    $files[$item['fid']] = $item['file'];
   }
   return file_view_multiple($files, $display['type'], 0, $langcode);
 }
