--- ezcontentobject.php	2009-12-09 19:16:51.026553664 +0100
+++ ezcontentobject.php.new	2009-12-09 19:16:37.226962618 +0100
@@ -5839,13 +5839,13 @@
         $access = $user->hasAccessTo( 'state', 'assign' );
 
         $db = eZDB::instance();
-        if ( $access['accessWord'] == 'yes' )
-        {
-            $sql = 'SELECT ezcobj_state.id
+         $sql = 'SELECT ezcobj_state.id
                     FROM   ezcobj_state, ezcobj_state_group
                     WHERE  ezcobj_state.group_id = ezcobj_state_group.id
                        AND ezcobj_state_group.identifier NOT LIKE \'ez%\'';
 
+        if ( $access['accessWord'] == 'yes' )
+        {
             $allowedStateIDList = $db->arrayQuery( $sql, array( 'column' => 'id' ) );
         }
         else if ( $access['accessWord'] == 'limited' )
@@ -5872,7 +5872,7 @@
 
                         case 'Owner':
                         {
-                            $allowed = in_array( 1, $values ) and $userID != $ownerID;
+                            $allowed = in_array( 1, $values ) && $userID == $ownerID;
                         } break;
 
                         case 'Group':
