diff --git a/commerce_addressbook.module b/commerce_addressbook.module
old mode 100644
new mode 100755
index 2bf91b6..b796e56
--- a/commerce_addressbook.module
+++ b/commerce_addressbook.module
@@ -38,22 +38,16 @@ function commerce_addressbook_menu() {
 
   $items['user/%user/addressbook'] = array(
     'title' => 'Address Book',
-    'page callback' => 'commerce_addressbook_profile_page',
+    'page callback' => 'commerce_addressbook_page',
     'page arguments' => array(1),
-    'access callback' => 'commerce_addressbook_profile_page_access',
-    'access arguments' => array(1),
+    'access callback' => 'commerce_addressbook_page_access',
     'type' => MENU_LOCAL_TASK,
     'file' => 'includes/commerce_addressbook.user.inc',
   );
 
   // Custom administrative components for managing customer profile entities
   // from the user pages.
-  $first = TRUE;
-  $enabled = FALSE;
   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),
@@ -61,16 +55,9 @@ function commerce_addressbook_menu() {
       'access arguments' => array(1, $type),
       'title' => $profile_type['name'],
       'title callback' => FALSE,
-      'type' => ($first && $enabled) ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
+      'type' => 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),
@@ -110,6 +97,20 @@ function commerce_addressbook_menu() {
 }
 
 /**
+ * Access callback for path /user/%user/addressbook.
+ *
+ * Return the first enabled profile type if there's one, or FALSE
+ */
+function commerce_addressbook_page_access() {
+  foreach (commerce_customer_profile_types() as $type => $profile_type) {
+    if (variable_get('commerce_customer_profile_' . $type . '_addressbook', FALSE)) {
+      return $type;
+    }
+  }
+  return FALSE;
+}
+
+/**
  * Access callback: determine if the user can create a customer profile of the
  * given type.
  */
diff --git a/includes/commerce_addressbook.user.inc b/includes/commerce_addressbook.user.inc
old mode 100644
new mode 100755
index c8a0629..2c861e4
--- a/includes/commerce_addressbook.user.inc
+++ b/includes/commerce_addressbook.user.inc
@@ -141,6 +141,20 @@ function commerce_addressbook_profile_options_default($account, $customer_profil
 }
 
 /**
+ * Access callback for path /user/%user/addressbook.
+ *
+ * Displays first enabled profile type addressbook page if user is logged in, or access denied for anonymous
+ */
+function commerce_addressbook_page($account) {
+  if ($account->uid) {
+    if ($type = commerce_addressbook_page_access()) {
+      menu_set_active_item('user/' . $account->uid . '/addressbook/' . $type);
+      return menu_execute_active_handler(NULL, FALSE);
+    }
+  }
+  return FALSE;
+}
+/**
  * Page callback for listing customer profiles of a certain type.
  *
  * Embeds a view that shows the current default profile, and a view that shows
