diff --git a/media.module b/media.module
index 1f97bcb..389c9f0 100644
--- a/media.module
+++ b/media.module
@@ -1235,6 +1235,29 @@ function media_ctools_plugin_api($module, $api) {
 }
 
 /**
+ * Implements hook_ctools_plugin_api_alter().
+ *
+ * Force file_default_display implementations on non-features to be evaluated
+ * first, to allow features to override them.
+ */
+function media_ctools_plugin_api_alter(&$modules, $owner, $api) {
+  if ($owner == 'media') {
+    $module_data = system_get_info('module');
+    $new_modules = array();
+    $features = array();
+    foreach ($modules as $name => $plugin) {
+      if (isset($module_data[$name]['features'])) {
+        $features[$name] = $plugin;
+      }
+      else {
+        $new_modules[$name] = $plugin;
+      }
+    }
+    $modules = array_merge($new_modules, $features);
+  }
+}
+
+/**
  * Implements hook_form_FORM_ID_alter().
  *
  * This alter enhances the default admin/content/file page, addding JS and CSS.
