diff --git a/includes/media.pages.inc b/includes/media.pages.inc
index 6fd75a3..76b8774 100644
--- a/includes/media.pages.inc
+++ b/includes/media.pages.inc
@@ -37,7 +37,19 @@ function media_file_page_edit_multiple($files) {
   if (empty($files)) {
     return MENU_ACCESS_DENIED;
   }
-
+  $list = array();
+  // In some cases, we may pass a string instead of an array.
+  if (!is_array($files)) {
+    $list[] = $files;
+  }
+  else {
+    $list = $files;
+  }
+  // Set the proper title.
+  if (count($list) == 1) {
+    drupal_set_title(t('Editing @type: @file', array('@type' => $file->type, '@file' => $file->filename)));
+  }
+  
   $forms = array();
   foreach ($files as $file) {
     // To maintain unique form_ids, append the file id.
@@ -137,7 +149,8 @@ function media_add_upload_validate($form, &$form_state) {
  * Upload a file.
  */
 function media_add_upload_submit($form, &$form_state) {
-  $params = $form_state['build_info']['args'][0];
+  $params = isset($form_state['build_info']['args'][0]) ? $form_state['build_info']['args'][0] : array();
+
   $file = $form_state['values']['upload'];
 
   // The media browser widget does not use the 'display' field.
@@ -178,7 +191,7 @@ function media_add_upload_submit($form, &$form_state) {
     return;
   }
 
-  $form_state['redirect'] = array('media/browser', array('query' => array('render' => 'media-popup', 'fid' => $file->fid)));
+  $form_state['redirect'] = array('admin/content/file/edit/' . $file->fid, array('query' => array('destination' => 'admin/content/file')));
 }
 
 function media_add_upload_multiple($form, &$form_state, $params = array()) {
@@ -223,7 +236,7 @@ function media_add_upload_multiple_submit($form, &$form_state) {
   foreach ($saved_files as $file) {
     $fids[] = $file->fid;
   }
-  $form_state['redirect'] = array('media/browser', array('query' => array('render' => 'media-popup', 'fid' => $fids)));
+  $form_state['redirect'] = array('admin/content/file/edit/' . implode(' ', $fids), array('query' => array('destination' => 'admin/content/file')));
 }
 
 function media_add_remote($form, &$form_state) {
diff --git a/js/media.admin.js b/js/media.admin.js
index f9441f5..c592b3a 100644
--- a/js/media.admin.js
+++ b/js/media.admin.js
@@ -21,26 +21,6 @@ Drupal.behaviors.mediaAdmin = {
       }
     });
 
-    // Configure the "Add file" link to fire the media browser popup.
-    var $launcherLink = $('<a class="media-launcher" href="#"></a>').html(Drupal.t('Add file'));
-    $launcherLink.bind('click', function () {
-      // This option format needs *serious* work.
-      // Not even bothering documenting it because it needs to be thrown.
-      // See media.browser.js and media.browser.inc - media_browser()
-      // For how it gets passed.
-      var options = {
-        disabledPlugins: ['library'],
-        multiselect: true
-      };
-      Drupal.media.popups.mediaBrowser(function (mediaFiles) {
-        // When the media browser succeeds, we refresh
-        // @TODO: Should jump to the new media file and perhaps highlight it.
-        parent.window.location.reload();
-        return false;
-      }, options);
-    });
-
-    $('ul.action-links', context).prepend($('<li></li>').append($launcherLink));
     if ($('body.page-admin-content-file-thumbnails').length != 0) {
       // Implements 'select all/none' for thumbnail view.
       // @TODO: Support grabbing more than one page of thumbnails.
diff --git a/media.module b/media.module
index cea8446..85819f2 100644
--- a/media.module
+++ b/media.module
@@ -128,6 +128,16 @@ function media_menu() {
     'type' => MENU_LOCAL_ACTION,
     'file' => 'includes/media.admin.inc',
   );
+  $items['admin/content/file/add'] = array(
+    'title' => 'Upload media',
+    'description' => 'Upload files to your media library.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('media_add_upload'),
+    'access arguments' => array('administer files'),
+    'type' => MENU_LOCAL_ACTION,
+    'file' => 'includes/media.pages.inc',
+    'weight' => -10,
+  );
 
   $items['admin/content/file/thumbnails/import'] = $items['admin/content/file/import'];
 
@@ -193,7 +203,7 @@ function media_menu() {
   if (module_exists('multiform')) {
     // @todo Investigate passing file IDs in query string rather than a menu
     // argument and then deprecate media_multi_load().
-    $items['admin/content/file/edit-multiple/%media_multi'] = array(
+    $items['admin/content/file/edit/%media_multi'] = array(
       'title' => 'Edit multiple files',
       'page callback' => 'media_file_page_edit_multiple',
       'page arguments' => array(4),
@@ -202,11 +212,32 @@ function media_menu() {
       'file' => 'includes/media.pages.inc',
     );
   }
+  else {
+    $items['admin/content/file/edit/%file'] = array(
+      'title' => 'Edit file upload',
+      'page callback' => 'file_entity_page_edit',
+      'page arguments' => array(4),
+      'access callback' => 'media_access',
+      'access arguments' => array('edit'),
+      'file path' => drupal_get_path('module', 'file_entity'),
+      'file' => 'file_entity.pages.inc',
+    );
+  }
 
   return $items;
 }
 
 /**
+ * Implements hook_menu_alter().
+ */
+function media_menu_alter(&$items) {
+  // Note that multiple file edits require multiform.
+  if (module_exists('plupload') && module_exists('multiform')) {
+    $items['admin/content/file/add']['page arguments'] = array('media_add_upload_multiple');
+  }
+}
+
+/**
  * Implement hook_permission().
  */
 function media_permission() {
@@ -408,7 +439,7 @@ function media_file_operation_edit_multiple($fids) {
   // The thumbnail browser returns TRUE/FALSE for each item, so use array keys.
   $fids = array_keys(array_filter($fids));
   // Note that we add a destination here to prevent normal form redirects.
-  drupal_goto('admin/content/file/edit-multiple/' . implode(' ', $fids), array('query' => drupal_get_destination()));
+  drupal_goto('admin/content/file/edit/' . implode(' ', $fids), array('query' => drupal_get_destination()));
 }
 
 /**
diff --git a/modules/media_internet/media_internet.module b/modules/media_internet/media_internet.module
index dd8c5d4..87a753f 100644
--- a/modules/media_internet/media_internet.module
+++ b/modules/media_internet/media_internet.module
@@ -1,6 +1,23 @@
 <?php
 
 /**
+ * Implements hook_menu().
+ */
+function media_internet_menu() {
+  $items['admin/content/file/web'] = array(
+    'title' => 'Add web media',
+    'description' => 'Add internet files to your media library.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('media_internet_add'),
+    'access arguments' => array('administer files'),
+    'type' => MENU_LOCAL_ACTION,
+    'weight' => -5,
+  );
+
+  return $items;
+}
+
+/**
  * Implements hook_ctools_plugin_api().
  */
 function media_internet_ctools_plugin_api($module, $api) {
@@ -195,7 +212,7 @@ function media_internet_add_submit($form, &$form_state) {
     return;
   }
 
-  $form_state['redirect'] = array('media/browser', array('query' => array('render' => 'media-popup', 'fid' => $file->fid)));
+  $form_state['redirect'] = array('admin/content/file/edit/' . $file->fid, array('query' => array('destination' => 'admin/content/file')));
 }
 
 /**
