diff --git a/includes/media.pages.inc b/includes/media.pages.inc
index 0f6cb28..0502ce1 100644
--- a/includes/media.pages.inc
+++ b/includes/media.pages.inc
@@ -29,27 +29,41 @@ function media_preview_ajax() {
  * Menu callback; presents the Media editing form for multiple file entities.
  */
 function media_page_multiedit($files) {
+  // Prevent hacking the URL.
   if (!module_exists('multiform')) {
-    drupal_set_message(t('To edit multiple media items, you must install the multiform module.'));
+    drupal_set_message(t('To edit multiple media items, you must install the <a href="!url">multiform module</a>.', array('!url' => 'http://drupal.org/project/multiform')));
+    return t('This page cannot display the current request.');
   }
-  $i = 0;
+
+  if (count($files) > 1) {
+    drupal_set_title(t('Editing multiple media files'));
+  }
+  else {
+    $file = current($files);
+    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, increment this counter.
-    // @see media_forms().
-    $i++;
-    $forms[] = array("media_edit_$i", $file);
+    // To maintain unique form_ids, append the file id.
+    $forms[] = array('media_edit_' . $file->fid, $file);
   }
 
   $form = call_user_func_array('multiform_get_form', $forms);
   $form['#attributes']['class'][] = 'media-multiedit-form';
 
-  unset($form['buttons']['Delete']);
-  // Would be nice to add this to show a message, but not working.
-  // Can debug.
-  //$form['buttons']['Save']['#submit'][] = 'media_page_multiedit_submit';
+  $destination = 'admin/content/file';
+  if (isset($_GET['destination'])) {
+    $destination = check_plain($_GET['destination']);
+  }
+  $form['buttons']['cancel'] = array(
+    '#markup' => l(t('Cancel'), $destination),
+    '#weight' => 10,
+  );
+  if (isset($form['buttons']['Delete'])) {
+    unset($form['buttons']['Delete']);
+  }
 
-  drupal_set_title(t('Editing multiple media files'));
   return $form;
 }
 
@@ -128,7 +142,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.
@@ -169,7 +184,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/multiedit/' . $file->fid, array('query' => array('destination' => 'admin/content/file')));
 }
 
 function media_add_upload_multiple($form, &$form_state, $params = array()) {
@@ -214,7 +229,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/multiedit/' . 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 c0bd252..b486363 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'];
 
@@ -214,6 +224,16 @@ function media_admin_paths() {
 }
 
 /**
+ * Implements hook_menu_alter().
+ */
+function media_menu_alter(&$items) {
+  // This might be better in Plupload module.
+  if (module_exists('plupload')) {
+    $items['admin/content/file/add']['page arguments'] = array('media_add_upload_multiple');
+  }
+}
+
+/**
  * Implement hook_permission().
  */
 function media_permission() {
diff --git a/modules/media_internet/media_internet.module b/modules/media_internet/media_internet.module
index dd8c5d4..16bf031 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/multiedit/' . $file->fid, array('query' => array('destination' => 'admin/content/file')));
 }
 
 /**
