diff --git a/product/ERP5Security/__init__.py b/product/ERP5Security/__init__.py
index ef1d539a2b8040497d7220164e86c4adbed3c9c2..6d3eb7b8309b34ec93ef4766282d01344bae0029 100644
--- a/product/ERP5Security/__init__.py
+++ b/product/ERP5Security/__init__.py
@@ -34,9 +34,9 @@ def mergedLocalRoles(object):
     object = getattr(object, 'aq_inner', object)
     while 1:
         if hasattr(object, '__ac_local_roles__'):
-            dict = object.__ac_local_roles__ or {}
-            if callable(dict): dict = dict()
-            for k, v in dict.items():
+            roles = object.__ac_local_roles__ or {}
+            if callable(roles): roles = roles()
+            for k, v in roles.items():
                 if merged.has_key(k):
                     merged[k] = merged[k] + v
                 else: