diff --git a/commerce_addressbook.module b/commerce_addressbook.module
index 2bf91b6..a1e33d2 100644
--- a/commerce_addressbook.module
+++ b/commerce_addressbook.module
@@ -53,57 +53,61 @@ function commerce_addressbook_menu() {
   foreach (commerce_customer_profile_types() as $type => $profile_type) {
     if (variable_get('commerce_customer_profile_' . $type . '_addressbook', FALSE)) {
       $enabled = TRUE;
+      $items['user/%user/addressbook/' . $type] = array(
+        'page callback' => 'commerce_addressbook_profile_page',
+        'page arguments' => array(1, $type),
+        'access callback' => 'commerce_addressbook_profile_page_access',
+        'access arguments' => array(1, $type),
+        'title' => $profile_type['name'],
+        'title callback' => FALSE,
+        'type' => ($first) ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
+        'file' => 'includes/commerce_addressbook.user.inc',
+      );
+      if ($first) {
+        // The parent menu item needs to point to the first profile type.
+        $items['user/%user/addressbook']['page arguments'][] = $type;
+        $items['user/%user/addressbook']['access arguments'][] = $type;
+        $first = FALSE;
+      }
+  
+      $items['user/%user/addressbook/' . $type . '/create'] = array(
+        'page callback' => 'commerce_addressbook_profile_create',
+        'page arguments' => array(1, $type),
+        'access callback' => 'commerce_addressbook_profile_create_access',
+        'access arguments' => array(1, $type),
+        'title' => 'Add an address',
+        'type' => MENU_LOCAL_ACTION,
+        'file' => 'includes/commerce_addressbook.user.inc',
+      );
+      $items['user/%user/addressbook/' . $type . '/edit/%commerce_customer_profile'] = array(
+        'page callback' => 'commerce_addressbook_profile_options_edit',
+        'page arguments' => array(1, 5),
+        'access callback' => 'commerce_addressbook_profile_access',
+        'access arguments' => array('update', 5),
+        'type' => MENU_CALLBACK,
+        'file' => 'includes/commerce_addressbook.user.inc',
+      );
+      $items['user/%user/addressbook/' . $type . '/default/%commerce_customer_profile'] = array(
+        'page callback' => 'commerce_addressbook_profile_options_default',
+        'page arguments' => array(1, 5),
+        'access callback' => 'commerce_addressbook_profile_access',
+        'access arguments' => array('update', 5),
+        'type' => MENU_CALLBACK,
+        'file' => 'includes/commerce_addressbook.user.inc',
+      );
+      $items['user/%user/addressbook/' . $type . '/delete/%commerce_customer_profile'] = array(
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('commerce_addressbook_profile_options_delete_form', 1, 5),
+        'access callback' => 'commerce_addressbook_profile_access',
+        'access arguments' => array('delete', 5),
+        'type' => MENU_CALLBACK,
+        'file' => 'includes/commerce_addressbook.user.inc',
+      );
     }
-    $items['user/%user/addressbook/' . $type] = array(
-      'page callback' => 'commerce_addressbook_profile_page',
-      'page arguments' => array(1, $type),
-      'access callback' => 'commerce_addressbook_profile_page_access',
-      'access arguments' => array(1, $type),
-      'title' => $profile_type['name'],
-      'title callback' => FALSE,
-      'type' => ($first && $enabled) ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
-      'file' => 'includes/commerce_addressbook.user.inc',
-    );
-    if ($first && $enabled) {
-      // The parent menu item needs to point to the first profile type.
-      $items['user/%user/addressbook']['page arguments'][] = $type;
-      $items['user/%user/addressbook']['access arguments'][] = $type;
-      $first = FALSE;
-    }
-
-    $items['user/%user/addressbook/' . $type . '/create'] = array(
-      'page callback' => 'commerce_addressbook_profile_create',
-      'page arguments' => array(1, $type),
-      'access callback' => 'commerce_addressbook_profile_create_access',
-      'access arguments' => array(1, $type),
-      'title' => 'Add an address',
-      'type' => MENU_LOCAL_ACTION,
-      'file' => 'includes/commerce_addressbook.user.inc',
-    );
-    $items['user/%user/addressbook/' . $type . '/edit/%commerce_customer_profile'] = array(
-      'page callback' => 'commerce_addressbook_profile_options_edit',
-      'page arguments' => array(1, 5),
-      'access callback' => 'commerce_addressbook_profile_access',
-      'access arguments' => array('update', 5),
-      'type' => MENU_CALLBACK,
-      'file' => 'includes/commerce_addressbook.user.inc',
-    );
-    $items['user/%user/addressbook/' . $type . '/default/%commerce_customer_profile'] = array(
-      'page callback' => 'commerce_addressbook_profile_options_default',
-      'page arguments' => array(1, 5),
-      'access callback' => 'commerce_addressbook_profile_access',
-      'access arguments' => array('update', 5),
-      'type' => MENU_CALLBACK,
-      'file' => 'includes/commerce_addressbook.user.inc',
-    );
-    $items['user/%user/addressbook/' . $type . '/delete/%commerce_customer_profile'] = array(
-      'page callback' => 'drupal_get_form',
-      'page arguments' => array('commerce_addressbook_profile_options_delete_form', 1, 5),
-      'access callback' => 'commerce_addressbook_profile_access',
-      'access arguments' => array('delete', 5),
-      'type' => MENU_CALLBACK,
-      'file' => 'includes/commerce_addressbook.user.inc',
-    );
+  }
+  if (!$enabled) {
+    // Unset the addressbook menu item if there's no profile with addressbook enabled.
+    unset($items['user/%user/addressbook']);
   }
 
   return $items;
@@ -316,6 +320,7 @@ function commerce_addressbook_form_alter(&$form, &$form_state, $form_id) {
       '#description' => t('This will allow authenticated users to reuse previously entered addresses.'),
       '#default_value' => variable_get('commerce_' . $form['checkout_pane']['#value']['pane_id'] . '_addressbook', FALSE),
     );
+    $form['#submit'][] = 'commerce_addressbook_commerce_checkout_pane_settings_form_submit';
   }
 
   if ($form_id == 'commerce_addressbook_customer_profile_form') {
@@ -332,6 +337,13 @@ function commerce_addressbook_form_alter(&$form, &$form_state, $form_id) {
 }
 
 /**
+ * Rebuild the menu on Submit commerce checkout form.
+ */
+function commerce_addressbook_commerce_checkout_pane_settings_form_submit($form, $form_state) {
+  menu_rebuild();
+}
+
+/**
  * Ajax callback for replacing the appropriate commerce customer checkout pane.
  */
 function commerce_addressbook_checkout_form_callback($form, $form_state) {
