You should not switch Doctrine collections like that. You should first clear the original collections and add each permissions of the given array. @ocramius can you confirm?