diff --git a/commerce_addressbook.module b/commerce_addressbook.module
index 01a9869..cffbef8 100644
--- a/commerce_addressbook.module
+++ b/commerce_addressbook.module
@@ -103,7 +103,7 @@ function commerce_addressbook_menu() {
  */
 function commerce_addressbook_page_access($account) {
   foreach (commerce_customer_profile_types() as $type => $profile_type) {
-    if (commerce_addressbook_profile_create_access($account, $type)) {
+    if (commerce_addressbook_profile_page_access($account, $type)) {
       return $type;
     }
   }
@@ -160,13 +160,20 @@ function commerce_addressbook_profile_page_access($account, $profile_type) {
   // Check if the user can access any page.
   if (user_access('administer commerce_customer_profile entities')
     || user_access('view any commerce_customer_profile entity')
-    || user_access('view any commerce_customer_profile entity of bundle ' . $profile_type)) {
+    || user_access('view any commerce_customer_profile entity of bundle ' . $profile_type)
+    || user_access('edit any commerce_customer_profile entity')
+    || user_access('edit any commerce_customer_profile entity of bundle ' . $profile_type)
+    || user_access('create commerce_customer_profile entities')
+    || user_access('create commerce_customer_profile entities of bundle ' . $profile_type)) {
     return TRUE;
   }
 
   // Check if the user can access his own page.
   if ($user->uid == $account->uid) {
-    if (user_access('view own commerce_customer_profile entities') || user_access('view own commerce_customer_profile entities of bundle ' . $profile_type)) {
+    if (user_access('view own commerce_customer_profile entities')
+    || user_access('view own commerce_customer_profile entities of bundle ' . $profile_type)
+    || user_access('edit own commerce_customer_profile entities')
+    || user_access('edit own commerce_customer_profile entities of bundle ' . $profile_type)) {
       return TRUE;
     }
   }
