diff --git modules/update/update.fetch.inc modules/update/update.fetch.inc
index b3041cb..579c1c8 100644
--- modules/update/update.fetch.inc
+++ modules/update/update.fetch.inc
@@ -374,6 +374,16 @@ function update_parse_xml($raw_xml) {
       foreach ($release->children() as $k => $v) {
         $data['releases'][$version][$k] = (string) $v;
       }
+      if (isset($release->files)) {
+        $data['releases'][$version]['files'] = array();
+        foreach ($release->files->children() as $file) {
+          $file_data = array();
+          foreach ($file->children() as $k => $v) {
+            $file_data[$k] = (string) $v;
+          }
+          $data['releases'][$version]['files'][] = $file_data;
+        }
+      }
       $data['releases'][$version]['terms'] = array();
       if ($release->terms) {
         foreach ($release->terms->children() as $term) {
diff --git modules/update/update.report.inc modules/update/update.report.inc
index ca33cf1..df901f4 100644
--- modules/update/update.report.inc
+++ modules/update/update.report.inc
@@ -288,10 +288,16 @@ function theme_update_status_label($variables) {
  *     - version: The version number.
  *     - release_link: The URL for the release notes.
  *     - date: The date of the release.
- *     - download_link: The URL for the downloadable file.
+ *     - download_link: (optional) The URL for the downloadable file.
+ *     - files: (optional) An array of downloadable file info, containing:
+ *       - url: The URL for the downloadable file.
+ *       - archive_type: The type of archive (e.g., tar.gz or zip).
  *   - tag: The title of the project.
  *   - class: A string containing extra classes for the wrapping table.
  *
+ * At least one of download_link or files must be provided. If both are
+ * present, files will be used and download_link ignored.
+ *
  * @ingroup themeable
  */
 function theme_update_version($variables) {
@@ -309,10 +315,23 @@ function theme_update_version($variables) {
   $output .= "</td>\n";
   $output .= '<td class="version-links">';
   $links = array();
-  $links['update-download'] = array(
-    'title' => t('Download'),
-    'href' => $version['download_link'],
-  );
+  if (!empty($version['files'])) {
+    // Generate a list of files.
+    $files = array();
+    foreach ($version['files'] as $file) {
+      $files[] = l($file['archive_type'], $file['url']);
+    }
+    $links['update-download'] = array(
+      'title' => t('Download') . ': ' . implode(' | ', $files),
+      'html' => TRUE,
+    );
+  }
+  else {
+    $links['update-download'] = array(
+      'title' => t('Download'),
+      'href' => $version['download_link'],
+    );
+  }
   $links['update-release-notes'] = array(
     'title' => t('Release notes'),
     'href' => $version['release_link'],
