diff --git a/file_entity.field.inc b/file_entity.field.inc
index 4b039b6..ac6922d 100644
--- a/file_entity.field.inc
+++ b/file_entity.field.inc
@@ -358,14 +358,14 @@ function file_entity_field_formatter_view($entity_type, $entity, $field, $instan
     $source_lists = array();
     if ($multiple_file_behavior == 'tags') {
       foreach ($items as $delta => $item) {
-        if ($item['type'] == 'audio') {
+        if (file_entity_file_get_mimetype_type($item) == 'audio') {
           $source_lists[$delta] = array($item);
         }
       }
     }
     else {
       foreach ($items as $delta => $item) {
-        if ($item['type'] == 'audio') {
+        if (file_entity_file_get_mimetype_type($item) == 'audio') {
           $source_lists[0][$delta] = $item;
         }
       }
@@ -393,14 +393,14 @@ function file_entity_field_formatter_view($entity_type, $entity, $field, $instan
     $source_lists = array();
     if ($multiple_file_behavior == 'tags') {
       foreach ($items as $delta => $item) {
-        if ($item['type'] == 'video') {
+        if (file_entity_file_get_mimetype_type($item) == 'video') {
           $source_lists[$delta] = array($item);
         }
       }
     }
     else {
       foreach ($items as $delta => $item) {
-        if ($item['type'] == 'video') {
+        if (file_entity_file_get_mimetype_type($item) == 'video') {
           $source_lists[0][$delta] = $item;
         }
       }
diff --git a/file_entity.module b/file_entity.module
index 641aa2e..ef689de 100644
--- a/file_entity.module
+++ b/file_entity.module
@@ -2479,6 +2479,9 @@ function file_entity_download_uri($file) {
 }
 
 function file_entity_file_get_mimetype_type($file) {
+  if (is_array($file)) {
+    $file = (object) $file;
+  }
   list($type, $subtype) = explode('/', $file->filemime, 2);
   return $type;
 }
