diff --git a/eZ/Publish/Core/Repository/RoleService.php b/eZ/Publish/Core/Repository/RoleService.php
index <HASH>..<HASH> 100644
--- a/eZ/Publish/Core/Repository/RoleService.php
+++ b/eZ/Publish/Core/Repository/RoleService.php
@@ -783,13 +783,14 @@ class RoleService implements RoleServiceInterface
     protected function buildPersistenceRoleObject( APIRoleCreateStruct $roleCreateStruct )
     {
         $policiesToCreate = array();
-        if ( !empty( $roleCreateStruct->getPolicies() ) )
+        $policyCreateStructs = $roleCreateStruct->getPolicies();
+        if ( !empty( $policyCreateStructs ) )
         {
-            foreach ( $roleCreateStruct->getPolicies() as $policy )
+            foreach ( $policyCreateStructs as $policyCreateStruct )
             {
-                $policiesToCreate[] = $this->buildPersistencePolicyObject( $policy->module,
-                                                                           $policy->function,
-                                                                           $policy->limitations );
+                $policiesToCreate[] = $this->buildPersistencePolicyObject( $policyCreateStruct->module,
+                                                                           $policyCreateStruct->function,
+                                                                           $policyCreateStruct->getLimitations() );
             }
         }
Additional fix to role service implementation due to new role structs