diff --git a/eZ/Publish/Core/Repository/ObjectStateService.php b/eZ/Publish/Core/Repository/ObjectStateService.php
index <HASH>..<HASH> 100644
--- a/eZ/Publish/Core/Repository/ObjectStateService.php
+++ b/eZ/Publish/Core/Repository/ObjectStateService.php
@@ -440,7 +440,7 @@ class ObjectStateService implements ObjectStateServiceInterface
      */
     public function setObjectState( ContentInfo $contentInfo, APIObjectStateGroup $objectStateGroup, APIObjectState $objectState )
     {
-        if ( $this->repository->hasAccess( 'state', 'assign' ) !== true )
+        if ( $this->repository->canUser( 'state', 'assign', $contentInfo, $objectState ) !== true )
             throw new UnauthorizedException( 'state', 'assign' );
 
         if ( !is_numeric( $contentInfo->id ) )
Fixed: state/assign permission function has limitations