diff --git a/profile2.module b/profile2.module
index daf22db..f47b6b0 100644
--- a/profile2.module
+++ b/profile2.module
@@ -533,7 +533,9 @@ function profile2_user_categories() {
 function profile2_category_access($account, $type_name) {
   // As there might be no profile yet, create a new object for being able to run
   // a proper access check.
-  $profile = profile2_create(array('type' => $type_name, 'uid' => $account->uid));
+  if(!$profile = profile2_load_by_user($account, $type_name)) {
+    $profile = profile2_create(array('type' => $type_name, 'uid' => $account->uid));
+  }
   return ($account->uid > 0 && $profile->type()->userCategory && profile2_access('edit', $profile));
 }
 
