diff --git a/includes/media.fields.inc b/includes/media.fields.inc
index de28823..aaeab60 100644
--- a/includes/media.fields.inc
+++ b/includes/media.fields.inc
@@ -117,15 +117,18 @@ function media_field_prepare_view($entity_type, $entities, $field, $instances, $
       }
     }
   }
-
   // Load the entities in a single operation.
-  $media_entities = media_load_multiple(array_values($fids));
+  $files = media_load_multiple(array_values($fids));
 
-  // Populate that item data with the loaded entities.
+  // Replace the item data with loaded files instead of just the file ids.
+  // This also creates an element called 'file' in the $item array which contains
+  // the actual file object.  This isn't pretty, but similar to the approach the relations
+  // module takes which we should eventually switch to.
   foreach ($entities as $id => $entity) {
     foreach ($items[$id] as $delta => $item) {
       if (is_array($item) && !empty($item['fid'])) {
-        $items[$id][$delta] = $media_entities[$item['fid']];
+        $items[$id][$delta] += (array)$files[$item['fid']];
+        $items[$id][$delta]['file'] = $files[$item['fid']];
       }
     }
   }
@@ -145,7 +148,7 @@ function media_field_formatter_view($entity_type, $entity, $field, $instance, $l
       // Display all values in a single element..
       $element[$delta] = array(
         '#theme' => 'media_formatter_large_icon',
-        '#file' => $item,
+        '#file' => $item['file'],
       );
     }
     return $element;
@@ -158,15 +161,14 @@ function media_field_formatter_view($entity_type, $entity, $field, $instance, $l
   // the media entity as per the large view_mode.
 
   // An array of media items to pass into entity rendering functions.
-  $media_items = array();
+  $files = array();
 
   foreach ($items as $delta => $item) {
-    $media_items[$item->fid] = $item;
-    //$media_items[$item['fid']] = media_load($item['fid']);
+    $files[$item['fid']] = $item['file'];
   }
 
-  field_attach_prepare_view('media', $media_items, $display['type']);
-  entity_prepare_view('media', $media_items);
+  field_attach_prepare_view('media', $files, $display['type']);
+  entity_prepare_view('media', $files);
 
 
 
@@ -179,16 +181,12 @@ function media_field_formatter_view($entity_type, $entity, $field, $instance, $l
     // Other fields are routed properly, but not that default field...
 
     // First check if the default File formatters are sufficient.
-//     $element[$delta] = file_field_formatter_view($obj_type, $object, $field, $instance, $langcode, $items, $display);
-
-    // If this is not handled by the File module, then defer to Styles.
-//     if (!$element[$delta]) {
-      $element[$delta] = field_attach_view('media', $item, $display['type'], $langcode);
+    // $element[$delta] = file_field_formatter_view($obj_type, $object, $field, $instance, $langcode, $items, $display);
+      $element[$delta] = field_attach_view('media', $item['file'], $display['type'], $langcode);
 
       // We'll defer to the Styles module to route formatting for the 'file'.
       $element[$delta]['file']['#theme'] = 'styles_field_formatter';
       $element[$delta]['file']['#element'] = $element[$delta]['file'];
-//     }
   }
 
   return $element;
