diff --git a/includes/media.fields.inc b/includes/media.fields.inc
index 74c5790..c36089a 100644
--- a/includes/media.fields.inc
+++ b/includes/media.fields.inc
@@ -453,11 +453,14 @@ function media_field_update($entity_type, $entity, $field, $instance, $langcode,
 function media_field_delete($entity_type, $entity, $field, $instance, $langcode, &$items) {
   list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
 
-  // Delete all file usages within this entity.
-  foreach ($items as $delta => $item) {
-    $file = (object) $item;
-    file_usage_delete($file, 'media', $entity_type, $id, 0);
-  }
+  // Delete directly from file_usage - instead of invoking file_usage_delete() -
+  // so that we can cover any media files that are contained in revisions which 
+  // are also deleted after this.
+  db_delete('file_usage')
+    ->condition('module', 'media')
+    ->condition('type', $entity_type)
+    ->condition('id', $id)
+    ->execute();                      
 }
 
 /**
