diff --git a/includes/media.variables.inc b/includes/media.variables.inc
index b652505..aa6a415 100644
--- a/includes/media.variables.inc
+++ b/includes/media.variables.inc
@@ -140,9 +140,6 @@ function media_variable_default($name = NULL) {
 
       'file_list_size' => 10,
 
-      // Used in media.xml.inc: how long to cache retrieved remote data.
-      'xml_cache_expire' => 3600,
-
       'import_batch_size' => 20,
       'fromurl_supported_schemes' => array('http', 'https', 'ftp', 'smb', 'ftps'),
       'icon_base_directory' => file_default_scheme() . '://media-icons/',
diff --git a/includes/media.xml.inc b/includes/media.xml.inc
deleted file mode 100644
index fdd6e04..0000000
--- a/includes/media.xml.inc
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/**
- * @file
- * XML data retrieval and storage API for Media.
- */
-
-/**
- * A wrapper around simplexml to retrieve a given XML file.
- *
- * @param string $url
- *   The URL to the XML to retrieve.
- * @param bool $display_errors
- *   Optional; if TRUE, then we'll display errors to the end user. They'll be
- *   logged to the watchdog in any case.
- * @param bool $refresh
- *   Optional; if TRUE, then we'll force a new load of the XML. Otherwise,
- *   a cached version will be retrieved if possible.
- *
- * @return object
- *   A fully populated object, or FALSE on an error.
- */
-function _media_retrieve_xml($url, $display_errors = FALSE, $refresh = FALSE) {
-  $xmls = &drupal_static(__FUNCTION__, array());
-
-  // Return our cached XML if allowed, and it exists.
-  if (!$refresh && isset($xmls[$url])) {
-    return $xmls[$url];
-  }
-  elseif (!$refresh && $cache = cache_get('media:xml:' . $url, 'cache_media_xml')) {
-    $xmls[$url] = $cache->data;
-    return $xmls[$url];
-  }
-
-  // Retrieve the document.
-  $result = drupal_http_request($url);
-
-  // Log an error if the document could not be retrieved.
-  if (isset($result->error) || empty($result)) {
-    $params = array('%url' => $url, '%error' => $result->error);
-    if ($display_errors) {
-      drupal_set_message(t('Error retrieving XML from %url: %error', $params), 'error');
-    }
-    watchdog('media', 'Error retrieving XML from %url: %error', $params, WATCHDOG_WARNING);
-
-    // Set the static cache, but not Drupal's cache, so we can attempt to
-    // retrieve the file another time if possible.
-    $xmls[$url] = FALSE;
-  }
-  else {
-    // Enable user error handling.
-    libxml_use_internal_errors(TRUE);
-
-    // Load the document.
-    $xml = simplexml_load_string($result->data);
-
-    if (!$xml) {
-      foreach (libxml_get_errors() as $error) {
-        $params = array('%url' => $url, '%error' => $error->message);
-        if ($display_errors) {
-          drupal_set_message(t('Error loading XML from %url: %error', $params), 'error');
-        }
-        watchdog('media', 'Error loading XML from %url: %error', $params, WATCHDOG_WARNING);
-      }
-
-      // Clear our error cache.
-      libxml_clear_errors();
-
-      // Set the static cache, but not Drupal's cache, so we can attempt to
-      // retrieve the file another time if possible.
-      $xmls[$url] = FALSE;
-    }
-    else {
-      $xmls[$url] = _media_unserialize_xml($xml);
-      cache_set('media:xml:' . $url, $xmls[$url], 'cache_media_xml', media_variable_get('xml_cache_expire', 3600));
-    }
-  }
-
-  return $xmls[$url];
-}
-
-/**
- * Recursively converts a SimpleXMLElement object into an array.
- *
- * @param object $xml
- *   The original XML object.
- */
-function _media_unserialize_xml($xml) {
-  if ($xml instanceof SimpleXMLElement) {
-    $xml = (array) $xml;
-  }
-  if (is_array($xml)) {
-    foreach ($xml as $key => $item) {
-      $xml[$key] = _media_unserialize_xml($item);
-    }
-  }
-  return $xml;
-}
diff --git a/media.install b/media.install
index 9415f06..9573223 100644
--- a/media.install
+++ b/media.install
@@ -6,16 +6,6 @@
  */
 
 /**
- * Implements hook_schema().
- */
-function media_schema() {
-  $schema['cache_media_xml'] = drupal_get_schema_unprocessed('system', 'cache');
-  $schema['cache_media_xml']['description'] = 'Cache table for the the results of retreived XML documents for remote streams.';
-
-  return $schema;
-}
-
-/**
  * Implements hook_install().
  */
 function media_install() {
@@ -145,12 +135,9 @@ function media_update_7000() {
 }
 
 /**
- * Create the cache_media_xml table.
+ * Deprecated update function.
  */
 function media_update_7001() {
-  $schema['cache_media_xml'] = drupal_get_schema_unprocessed('system', 'cache');
-  $schema['cache_media_xml']['description'] = 'Cache table for the the results of retreived XML documents for remote streams.';
-  db_create_table('cache_media_xml', $schema['cache_media_xml']);
 }
 
 /**
@@ -1024,3 +1011,14 @@ function media_update_7216() {
     throw new DrupalUpdateException('Unable to copy the media file t');
   }
 }
+
+/**
+ * Drop the legacy {cache_media_xml} table.
+ */
+function media_update_7217() {
+  if (db_table_exists('cache_media_xml')) {
+    db_drop_table('cache_media_xml');
+  }
+
+  variable_del('media__xml_cache_expire');
+}
diff --git a/media.module b/media.module
index ade1169..5e7cbbb 100644
--- a/media.module
+++ b/media.module
@@ -683,26 +683,6 @@ function media_dialog_get_theme_name() {
 }
 
 /**
- * A wrapper around simplexml to retrieve a given XML file.
- *
- * @param string $url
- *   The URL to the XML to retrieve.
- * @param bool $display_errors
- *   Optional; if TRUE, then we'll display errors to the end user. They'll be
- *   logged to the watchdog in any case.
- * @param bool $refresh
- *   Optional; if TRUE, then we'll force a new load of the XML. Otherwise,
- *   a cached version will be retrieved if possible.
- *
- * @return object
- *   A fully populated object, or FALSE on an error.
- */
-function media_retrieve_xml($url, $display_errors = FALSE, $refresh = FALSE) {
-  module_load_include('inc', 'media', 'includes/media.xml');
-  return _media_retrieve_xml($url, $display_errors, $refresh);
-}
-
-/**
  * This will parse a url or embedded code into a unique URI.
  *
  * The function will call all modules implementing hook_media_parse($url),
