diff --git a/workbench_access.module b/workbench_access.module
index 8796cd3..c09fe81 100644
--- a/workbench_access.module
+++ b/workbench_access.module
@@ -799,10 +799,12 @@ function workbench_access_user_load_data($account) {
       ->condition('war.access_scheme', $access_scheme);
     $result = $query->execute()->fetchAll();
     foreach ($result as $data) {
+      if (!isset($account->workbench_access_by_role[$data->access_id])) {
+        // Identify the access-by-role features.
+        $account->workbench_access_by_role[$data->access_id] = $data->access_id;
+      }
       if (!isset($items[$data->access_id])) {
         $items[$data->access_id] = $data;
-        // Identify the access-by-role features.
-        $account->workbench_access_by_role[] = $data->access_id;
       }
     }
     foreach ($items as $item) {
