diff --git a/release/includes/project_edit_releases.inc b/release/includes/project_edit_releases.inc
index b2ecd64..e229de5 100644
--- a/release/includes/project_edit_releases.inc
+++ b/release/includes/project_edit_releases.inc
@@ -197,6 +197,7 @@ function project_release_project_edit_form_submit($form, &$form_state) {
   $nid = $form_state['build_info']['args'][0]->nid;
 
   if (!empty($form_state['values']['api'])) {
+    $updates = array();
     foreach ($form_state['values']['api'] as $tid => $values) {
       if (!empty($values['major'])) {
         foreach ($values['major'] as $major => $major_values) {
@@ -215,6 +216,7 @@ function project_release_project_edit_form_submit($form, &$form_state) {
                 ->condition('tid', $tid)
                 ->condition('major', $major)
                 ->execute();
+              $updates[] = array($tid => $major);
             }
           }
           else {
@@ -228,6 +230,7 @@ function project_release_project_edit_form_submit($form, &$form_state) {
                 'snapshot' => $major_values['snapshot'],
               ))
               ->execute();
+            $updates[] = array($tid => $major);
           }
         }
       }
@@ -239,4 +242,10 @@ function project_release_project_edit_form_submit($form, &$form_state) {
     ->execute();
 
   drupal_set_message(t('Release settings have been saved.'));
+
+  // Since we've possibly adjusted the status/recommended releases, we need to
+  // recompute the update status for each set of releases and re-generate the
+  // download table.
+  drupal_register_shutdown_function('project_release_compute_update_status_multiple', $nid, $updates);
+
 }
diff --git a/release/project_release.module b/release/project_release.module
index 01e0f09..93f13f5 100644
--- a/release/project_release.module
+++ b/release/project_release.module
@@ -397,6 +397,9 @@ function project_release_check_supported_versions($pid, $tid, $major, $delete =
  *   The API compatibility term ID.
  * @param $major
  *   The major version of the new/modified/deleted release.
+ * @param $regen
+ *   Flag indicating whether to regenerate the project_release download table.
+ *   Defaults to TRUE.
  *
  * @return
  *   Void. This function directly updates field_release_update_status with the
@@ -406,7 +409,7 @@ function project_release_check_supported_versions($pid, $tid, $major, $delete =
  * @see project_release_query_releases_by_branch()
  * @see project_release_release_nodeapi()
  */
-function project_release_compute_update_status($pid, $api_tid, $major) {
+function project_release_compute_update_status($pid, $api_tid, $major, $regen = TRUE) {
   $latest_release = $recommended_release = $latest_security_release = 0;
   $insecure_nids = array();
   foreach (project_release_query_releases_by_branch($pid, $api_tid, $major) as $release) {
@@ -466,10 +469,37 @@ function project_release_compute_update_status($pid, $api_tid, $major) {
   }
 
   // Regenerate the download table.
-  project_release_download_table($pid, TRUE);
+  if ($regen) {
+    project_release_download_table($pid, TRUE);
+  }
 }
 
 /**
+ * Compute the field_release_update_status values for multiple branches.
+ *
+ * This function is a wrapper for project_release_compute_update_status(),
+ * facilitating the update status computation for multiple branches via a
+ * single function call.
+ *
+ * @param $pid
+ *   The project id.
+ * @param $updates
+ *   An array of branches to be passed to project_release_compute_update_status
+ *   where each branch is itself an array with a single '$api_tid' => '$major'
+ *   element.
+ *
+ * @see project_release_compute_update_status()
+ */
+function project_release_compute_update_status_multiple($pid, $updates) {
+  $last_key = end(array_keys($updates));
+  foreach ($updates as $key => $update) {
+    $regen = $key == $last_key ? TRUE : FALSE;
+    project_release_compute_update_status($pid, $update['api_tid'], $update['major'], $regen);
+  }
+}
+
+
+/**
  * Alters the project settings form.
  */
 function project_release_form_project_main_settings_form_alter(&$form, &$form_state) {
