diff --git a/media_gallery.fields.inc b/media_gallery.fields.inc
index 307cdbb..8f4dfba 100644
--- a/media_gallery.fields.inc
+++ b/media_gallery.fields.inc
@@ -13,7 +13,7 @@ function media_gallery_field_formatter_info() {
   return array(
     'media_gallery' => array(
       'label' => t('Gallery media'),
-      'field types' => array('media'),
+      'field types' => array('file'),
       'settings' => array('file_view_mode' => 'media_gallery_thumbnail'),
     ),
   );
@@ -89,14 +89,13 @@ function media_gallery_field_formatter_view($entity_type, $entity, $field, $inst
   // Prepare the referenced file entities for viewing.
   $files = array();
   foreach ($items as $delta => $item) {
+    $file = file_load($item['fid']);
     // Don't try to display files which no longer exist.
-    if (!isset($item['file'])) {
+    if ($file === FALSE) {
       unset($items[$delta]);
       continue;
     }
 
-    $file = $item['file'];
-
     // Pass along formatter reference field values from the gallery to the file.
     foreach ($formatter_reference_fields as $field_name) {
       if (!isset($file->{$field_name}) && isset($entity->{$field_name})) {
@@ -119,7 +118,7 @@ function media_gallery_field_formatter_view($entity_type, $entity, $field, $inst
   // View each file. We don't use file_view_multiple(), because we need the
   // render array indexed by $delta rather than by file id.
   foreach ($items as $delta => $item) {
-    $element[$delta] = file_view($item['file'], $file_view_mode, $langcode);
+    $element[$delta] = file_view($files[$item['fid']], $file_view_mode, $langcode);
     $element[$delta]['#media_gallery_entity_type'] = $entity_type;
     $element[$delta]['#media_gallery_entity'] = $entity;
     switch ($file_view_mode) {
diff --git a/media_gallery.install b/media_gallery.install
index 358b62b..8e557ec 100644
--- a/media_gallery.install
+++ b/media_gallery.install
@@ -183,7 +183,7 @@ function _media_gallery_controlled_fields() {
       'field_name' => 'media_gallery_media',
       'cardinality' => FIELD_CARDINALITY_UNLIMITED,
       'locked' => TRUE,
-      'type' => 'media',
+      'type' => 'file',
     ),
     // The gallery description.
     'media_gallery_description' => array(
@@ -988,7 +988,7 @@ function media_gallery_update_7000() {
     field_update_instance( array(
         'field_name' => 'media_description',
         'bundle' => $bundle,
-        'entity_type' => 'media',
+        'entity_type' => 'file',
         'display' => array(
           'default' => array('type' => 'text_default', 'label' => 'above'),
           'media_gallery_thumbnail' => array('type' => 'text_default', 'label' => 'above'),
@@ -1068,14 +1068,14 @@ function media_gallery_update_7001() {
 function media_gallery_update_7002() {
   drupal_load('module', 'field');
   $bundle = 'video';
-  $bundle_settings = field_bundle_settings('media', $bundle);
+  $bundle_settings = field_bundle_settings('file', $bundle);
   $bundle_settings['view_modes']['media_gallery_thumbnail']['custom_settings'] = TRUE;
   $bundle_settings['view_modes']['media_gallery_lightbox']['custom_settings'] = TRUE;
   $bundle_settings['view_modes']['media_gallery_detail']['custom_settings'] = TRUE;
   $bundle_settings['view_modes']['media_gallery_block_thumbnail']['custom_settings'] = TRUE;
   $bundle_settings['view_modes']['media_gallery_collection_thumbnail']['custom_settings'] = TRUE;
-  field_bundle_settings('media', $bundle, $bundle_settings);
-  $instance = field_info_instance('media', 'file', $bundle);
+  field_bundle_settings('file', $bundle, $bundle_settings);
+  $instance = field_info_instance('file', 'file', $bundle);
   $instance['display']['media_gallery_thumbnail'] = array('type' => 'styles_file_media_gallery_thumbnail', 'label' => 'hidden');
   $instance['display']['media_gallery_lightbox'] = array('type' => 'styles_file_media_gallery_large', 'label' => 'hidden');
   $instance['display']['media_gallery_detail'] = array('type' => 'styles_file_media_gallery_large', 'label' => 'hidden');
diff --git a/media_gallery.module b/media_gallery.module
index af72cd3..db4b382 100644
--- a/media_gallery.module
+++ b/media_gallery.module
@@ -129,8 +129,8 @@ function media_gallery_menu() {
     'title' => 'Download',
     'page callback' => 'media_download',
     'page arguments'  => array(1),
-    'access callback' => 'media_access',
-    'access arguments' => array('view'),
+    'access callback' => 'file_entity_access',
+    'access arguments' => array('view', 1),
     'type' => MENU_CALLBACK,
     'file' => 'media.pages.inc',
   );
@@ -322,8 +322,9 @@ function media_gallery_view($node, $view_mode) {
   // time building the render structure for items that won't be shown.
   if ($view_mode == 'teaser') {
     if (!empty($node->media_gallery_media[LANGUAGE_NONE])) {
-      if (media_access('view')) {
-        $first_item = array_shift($node->media_gallery_media[LANGUAGE_NONE]);
+      $first_item = array_shift($node->media_gallery_media[LANGUAGE_NONE]);
+      $file = file_load($first_item['fid']);
+      if (file_entity_access('view', $file)) {
         $node->media_gallery_media[LANGUAGE_NONE] = array($first_item);
       }
       else {
@@ -334,8 +335,12 @@ function media_gallery_view($node, $view_mode) {
   // For the full display, implement pagination.
   elseif ($view_mode == 'full' || $view_mode == 'media_gallery_block') {
     $full = $view_mode == 'full' ? TRUE : FALSE;
-    if (!empty($node->media_gallery_media) && media_access('view')) {
-      $media = $node->media_gallery_media[LANGUAGE_NONE];
+    if (!empty($node->media_gallery_media)) {
+      $first_item = $node->media_gallery_media[LANGUAGE_NONE][0];
+      $file = file_load($first_item['fid']);
+      if (file_entity_access('view', $file)) {
+        $media = $node->media_gallery_media[LANGUAGE_NONE];
+      }
     }
     else {
       $media = array();
@@ -597,13 +602,14 @@ function media_gallery_block_info() {
  */
 function media_gallery_block_view($delta = '') {
   $node = node_load($delta);
+  $file = file_load($node->media_gallery_media[LANGUAGE_NONE][0]['fid']);
   if (empty($node->media_gallery_expose_block[LANGUAGE_NONE][0]['value'])) {
     // Bail out now if the node doesn't exist or if it is configured not to
     // display a block.
     $block['subject'] = NULL;
     $block['content'] = '';
   }
-  elseif (empty($node->media_gallery_media_original) || !media_access('view')) {
+  elseif (empty($node->media_gallery_media_original) || !file_entity_access('view', $file)) {
     // Bail out now if there won't be any media items to show.
     $block['subject'] = check_plain($node->title);
     $block['content'] = t('No content available.');
@@ -895,9 +901,9 @@ function media_gallery_form($node, $form_state) {
  * Implements hook_form_alter().
  */
 function media_gallery_form_alter(&$form, &$form_state, $form_id) {
-  if (strpos($form_id, 'media_edit') === 0) {
+  if (strpos($form_id, 'file_entity_edit') === 0) {
     // Act on both the regular and multiform versions of the edit form.
-    if ($form_id === 'media_edit' || preg_match('/^media_edit_[0-9]+$/', $form_id)) {
+    if ($form_id === 'file_entity_edit' || preg_match('/^file_entity_edit_[0-9]+$/', $form_id)) {
       // Prepopulate the media_edit form with our best guess at the image title.
       if (!empty($form['media_title']) && empty($form['media_title'][LANGUAGE_NONE][0]['value']['#default_value'])) {
         $fid = $form['fid']['#value'];
@@ -1021,7 +1027,7 @@ function media_gallery_form_media_gallery_node_form_alter(&$form, &$form_state)
 /**
  * Implements hook_form_FORM_ID_alter().
  */
-function media_gallery_form_media_edit_alter(&$form, &$form_state) {
+function media_gallery_form_file_entity_edit_alter(&$form, &$form_state) {
   // Adjust the media edit form when it is shown within a gallery context.
   if (isset($form_state['media_gallery']['gallery'])) {
     // Remove the Delete button, since media entities can't be deleted when they
@@ -1038,9 +1044,9 @@ function media_gallery_form_media_edit_alter(&$form, &$form_state) {
     // Make sure to add this for the form-level submit handlers and also for the
     // button-level submit handlers of the "Save" button, in case those are
     // being used.
-    $form['#submit'][] = 'media_gallery_media_edit_submit';
+    $form['#submit'][] = 'media_gallery_file_entity_edit_submit';
     if (isset($form['actions']['submit']['#submit'])) {
-      $form['actions']['submit']['#submit'][] = 'media_gallery_media_edit_submit';
+      $form['actions']['submit']['#submit'][] = 'media_gallery_file_entity_edit_submit';
     }
   }
   // On the media gallery multiedit page, add a "Remove" checkbox to each item.
@@ -1064,7 +1070,7 @@ function _media_gallery_add_remove_checkbox(&$form, &$form_state, $node) {
   $form['remove'] = array(
     '#type' => 'checkbox',
     '#title' => t('Remove from gallery'),
-    '#description' => t('The original file remains in your <a href="@library">media library</a>.', array('@library' => url('admin/content/media'))),
+    '#description' => t('The original file remains in your <a href="@library">media library</a>.', array('@library' => url('admin/content/file'))),
     '#access' => node_access('update', $node),
   );
 
@@ -1101,7 +1107,7 @@ function media_gallery_multiedit_remove_item($form, &$form_state) {
  *
  * @see media_gallery_form_media_edit_alter()
  */
-function media_gallery_media_edit_submit($form, &$form_state) {
+function media_gallery_file_entity_edit_submit($form, &$form_state) {
   $form_state['redirect'] = 'media-gallery/detail/' . $form_state['media_gallery']['gallery']->nid . '/' . $form_state['values']['fid'];
 }
 
@@ -1466,11 +1472,12 @@ function media_gallery_edit_access($node) {
  * galleries.
  */
 function media_gallery_multiedit_access($node) {
-  if (media_gallery_edit_access($node) && media_access('edit')) {
-    $media_items = field_get_items('node', $node, 'media_gallery_media');
-    if ($media_items !== FALSE && count($media_items) > 0) {
-      return TRUE;
-    }
+  if (!$media_items = field_get_items('node', $node, 'media_gallery_media')) {
+    return;
+  }
+  $file = file_load($media_items[0]['fid']);
+  if (media_gallery_edit_access($node) && file_entity_access('edit', $file)) {
+    return field_get_items('node', $node, 'media_gallery_media');
   }
 }
 
@@ -1487,7 +1494,7 @@ function media_gallery_multiedit_access($node) {
  */
 function media_gallery_view_item_access($node, $file) {
   // Only grant access if the user can view the gallery and the provided media.
-  return media_gallery_view_access($node) && media_access('view')
+  return media_gallery_view_access($node) && file_entity_access('view', $file)
     && in_array($file->fid, media_gallery_get_file_ids($node));
 }
 
@@ -1505,7 +1512,7 @@ function media_gallery_view_item_access($node, $file) {
 function media_gallery_edit_item_access($node, $file) {
   // Only grant access if the user can edit the provided media
   // and the media is part of the gallery.
-  return media_access('edit')
+  return file_entity_access('edit', $file)
     && in_array($file->fid, media_gallery_get_file_ids($node));
 }
 
diff --git a/media_gallery.pages.inc b/media_gallery.pages.inc
index 161b8da..ea3f68f 100644
--- a/media_gallery.pages.inc
+++ b/media_gallery.pages.inc
@@ -300,8 +300,8 @@ function media_gallery_add_images($node) {
     if (empty($existing_fids[$fid])) {
       $file = Array();
       $file['fid'] = $fid;
-      $file['title'] = NULL;
-      $file['data'] = '';
+      $file['display'] = 1;
+      $file['description'] = '';
       $items[] = $file;
     }
   }
@@ -374,8 +374,8 @@ function media_gallery_media_page_edit($gallery, $file) {
   // include file. In addition to loading it here, we also set the include file
   // info within $form_state in case there are AJAX enabled widgets that will
   // submit to system/ajax, bypassing this menu callback.
-  module_load_include('inc', 'media', 'includes/media.pages');
-  $form_state['build_info']['files']['menu'] = array('type' => 'inc', 'module' => 'media', 'name' => 'media.pages');
+  module_load_include('inc', 'file_entity', 'file_entity.pages');
+  $form_state['build_info']['files']['menu'] = array('type' => 'inc', 'module' => 'file_entity', 'name' => 'file_entity.pages');
 
   // Provide context information for form building and processing functions.
   $form_state['media_gallery']['gallery'] = $gallery;
@@ -383,7 +383,7 @@ function media_gallery_media_page_edit($gallery, $file) {
   // Since we have a $form_state, we can't call drupal_get_form(), so pass the
   // expected arguments to drupal_build_form().
   $form_state['build_info']['args'] = array($file);
-  return drupal_build_form('media_edit', $form_state);
+  return drupal_build_form('file_entity_edit', $form_state);
 }
 
 /**
@@ -409,7 +409,7 @@ function media_gallery_media_page_multiedit($node) {
   module_load_include('inc', 'media', 'includes/media.pages');
 
   // Build and process the form.
-  $form = media_page_multiedit($files);
+  $form = media_file_page_edit_multiple($files);
 
   // Override the page title set by media_page_multiedit() and return the form.
   drupal_set_title(t('<em>Edit media for</em> @title', array('@type' => $node->type, '@title' => $node->title)), PASS_THROUGH);
