diff --git a/shipping/uc_flatrate/uc_flatrate.admin.inc b/shipping/uc_flatrate/uc_flatrate.admin.inc
index d5cdf5f..672fa4f 100644
--- a/shipping/uc_flatrate/uc_flatrate.admin.inc
+++ b/shipping/uc_flatrate/uc_flatrate.admin.inc
@@ -126,14 +126,6 @@ function uc_flatrate_admin_method_edit_form_submit($form, &$form_state) {
     drupal_write_record('uc_flatrate_methods', $form_state['values']);
     $mid = $form_state['values']['mid'];
 
-    $enabled = variable_get('uc_quote_enabled', array());
-    $enabled['flatrate_' . $mid] = TRUE;
-    variable_set('uc_quote_enabled', $enabled);
-
-    $weight = variable_get('uc_quote_method_weight', array());
-    $weight['flatrate_' . $mid] = 0;
-    variable_set('uc_quote_method_weight', $weight);
-
     // Ensure Rules picks up the new condition.
     entity_flush_caches();
 
@@ -179,14 +171,6 @@ function uc_flatrate_admin_method_confirm_delete_submit($form, &$form_state) {
 
   rules_config_delete(array('get_quote_from_flatrate_' . $mid));
 
-  $enabled = variable_get('uc_quote_enabled', array());
-  unset($enabled['flatrate_' . $mid]);
-  variable_set('uc_quote_enabled', $enabled);
-
-  $weight = variable_get('uc_quote_method_weight', array());
-  unset($weight['flatrate_' . $mid]);
-  variable_set('uc_quote_method_weight', $weight);
-
   drupal_set_message(t('Flat rate shipping method deleted.'));
   $form_state['redirect'] = 'admin/store/settings/quotes/methods';
 }
diff --git a/shipping/uc_flatrate/uc_flatrate.module b/shipping/uc_flatrate/uc_flatrate.module
index 27c3aff..104425e 100644
--- a/shipping/uc_flatrate/uc_flatrate.module
+++ b/shipping/uc_flatrate/uc_flatrate.module
@@ -168,15 +168,8 @@ function uc_flatrate_node_revision_delete($node) {
 function uc_flatrate_uc_shipping_method() {
   $methods = array();
 
-  $enabled = variable_get('uc_quote_enabled', array());
-  $weight = variable_get('uc_quote_method_weight', array());
-
   $result = db_query("SELECT mid, title, label, base_rate, product_rate FROM {uc_flatrate_methods}");
   foreach ($result as $method) {
-    // Ensure default values are set.
-    $enabled += array('flatrate_' . $method->mid => TRUE);
-    $weight += array('flatrate_' . $method->mid => 0);
-
     $methods['flatrate_' . $method->mid] = array(
       'id' => 'flatrate_' . $method->mid,
       'module' => 'uc_flatrate',
@@ -192,7 +185,6 @@ function uc_flatrate_uc_shipping_method() {
           'href' => 'admin/store/settings/quotes/flatrate/' . $method->mid . '/delete',
         ),
       ),
-      'enabled' => $enabled['flatrate_' . $method->mid],
       'quote' => array(
         'type' => 'order',
         'callback' => 'uc_flatrate_quote',
@@ -200,7 +192,8 @@ function uc_flatrate_uc_shipping_method() {
           $method->label,
         ),
       ),
-      'weight' => $weight['flatrate_' . $method->mid],
+      'enabled' => TRUE,
+      'weight' => 0,
     );
   }
 
diff --git a/shipping/uc_quote/uc_quote.admin.inc b/shipping/uc_quote/uc_quote.admin.inc
index 3f4a96d..7087a1d 100644
--- a/shipping/uc_quote/uc_quote.admin.inc
+++ b/shipping/uc_quote/uc_quote.admin.inc
@@ -122,30 +122,21 @@ function uc_quote_method_settings($form, &$form_state) {
     '#tree' => TRUE,
   );
 
-  $enabled = variable_get('uc_quote_enabled', array());
-  $weight = variable_get('uc_quote_method_weight', array());
-  $methods = module_invoke_all('uc_shipping_method');
-  uasort($methods, '_uc_quote_type_sort');
-
-  foreach ($methods as $method) {
+  foreach (uc_quote_methods(TRUE) as $method) {
     if (isset($method['quote'])) {
       $id = $method['id'];
 
-      // Ensure default values are set.
-      $enabled += array($id => FALSE);
-      $weight += array($id => 0);
-
       $form['methods'][$id]['uc_quote_enabled'] = array(
         '#type' => 'checkbox',
         '#title' => $method['title'],
-        '#default_value' => $enabled[$id],
+        '#default_value' => $method['enabled'],
       );
       $form['methods'][$id]['description'] = array(
         '#markup' => isset($method['description']) ? $method['description'] : '',
       );
       $form['methods'][$id]['uc_quote_method_weight'] = array(
         '#type' => 'weight',
-        '#default_value' => $weight[$id],
+        '#default_value' => $method['weight'],
         '#attributes' => array('class' => array('uc-quote-method-weight')),
       );
       $form['methods'][$id]['operations'] = array(
diff --git a/shipping/uc_quote/uc_quote.module b/shipping/uc_quote/uc_quote.module
index f6c939f..d0f7a22 100644
--- a/shipping/uc_quote/uc_quote.module
+++ b/shipping/uc_quote/uc_quote.module
@@ -666,7 +666,7 @@ function uc_checkout_pane_quotes($op, &$order, $form = NULL, &$form_state = NULL
         $quote_option = explode('---', $default_option);
         $order->quote['method'] = $quote_option[0];
         $order->quote['accessorials'] = $quote_option[1];
-        $methods = array_filter(module_invoke_all('uc_shipping_method'), '_uc_quote_method_enabled');
+        $methods = uc_quote_methods();
         $method = $methods[$quote_option[0]];
 
         $label = $method['quote']['accessorials'][$quote_option[1]];
@@ -727,7 +727,7 @@ function uc_checkout_pane_quotes($op, &$order, $form = NULL, &$form_state = NULL
       $quote_option = explode('---', $form_state['values']['panes']['quotes']['quotes']['quote_option']);
       $order->quote['method'] = $quote_option[0];
       $order->quote['accessorials'] = $quote_option[1];
-      $methods = array_filter(module_invoke_all('uc_shipping_method'), '_uc_quote_method_enabled');
+      $methods = uc_quote_methods();
       $method = $methods[$quote_option[0]];
 
       $label = $method['quote']['accessorials'][$quote_option[1]];
@@ -842,7 +842,7 @@ function uc_quote_apply_quote_to_order($form, &$form_state) {
       $quote_option = explode('---', $form_state['values']['quotes']['quote_option']);
       $order->quote['method'] = $quote_option[0];
       $order->quote['accessorials'] = $quote_option[1];
-      $methods = array_filter(module_invoke_all('uc_shipping_method'), '_uc_quote_method_enabled');
+      $methods = uc_quote_methods();
       $method = $methods[$quote_option[0]];
 
       $label = $method['quote']['accessorials'][$quote_option[1]];
@@ -1016,10 +1016,30 @@ function theme_uc_quote_returned_rates($variables) {
 }
 
 /**
- * Callback for array_filter().
+ * Returns an array of available shipping quote methods.
+ *
+ * @param $all
+ *   If FALSE, only enabled shipping methods are returned.
  */
-function _uc_quote_method_enabled($method) {
-  return $method['enabled'];
+function uc_quote_methods($all = FALSE) {
+  $enabled = variable_get('uc_quote_enabled', array());
+  $weight = variable_get('uc_quote_method_weight', array());
+
+  $methods = array();
+  foreach (module_invoke_all('uc_shipping_method') as $id => $method) {
+    if (isset($enabled[$id])) {
+      $method['enabled'] = $enabled[$id];
+    }
+    if (isset($weight[$id])) {
+      $method['weight'] = $weight[$id];
+    }
+
+    if ($all || $method['enabled']) {
+      $methods[$id] = $method;
+    }
+  }
+  uasort($methods, '_uc_quote_type_sort');
+  return $methods;
 }
 
 /**
@@ -1053,19 +1073,6 @@ function uc_quote_price_sort($a, $b) {
 }
 
 /**
- * Returns an array of quote types to be selected in a form.
- */
-function uc_quote_type_options() {
-  $methods = module_invoke_all('uc_shipping_method');
-  foreach ($methods as $method) {
-    if (isset($method['quote'])) {
-      $types[$method['id']] = $method['title'];
-    }
-  }
-  return $types;
-}
-
-/**
  * Returns an options array of shipping types.
  */
 function uc_quote_shipping_type_options() {
diff --git a/shipping/uc_quote/uc_quote.pages.inc b/shipping/uc_quote/uc_quote.pages.inc
index f5a3113..bdebb8e 100644
--- a/shipping/uc_quote/uc_quote.pages.inc
+++ b/shipping/uc_quote/uc_quote.pages.inc
@@ -45,8 +45,7 @@ function uc_quote_assemble_quotes($order) {
       $type_weight = $all_types[$type]['weight'];
     }
   }
-  $methods = array_filter(module_invoke_all('uc_shipping_method'), '_uc_quote_method_enabled');
-  uasort($methods, '_uc_quote_type_sort');
+  $methods = uc_quote_methods();
   foreach ($methods as $id => $method) {
     if ($method['quote']['type'] != 'order' && $method['quote']['type'] != $shipping_type) {
       unset($methods[$id]);
