Fixed a bug where the inverse side of a many-to-many relation was not updated (here: SoftwareOrMethod [inverse] -> Licensee [owning]). This is actually the expected behaviour and documented in the Doctrine manual. Doctrine will not update the inverse side, so we have to do this manually on an object level. To do this, update the other side in the add/remove methods of the entity. Check with "contains" to prevent an infinite loop. In order for Doctrine to actually call these adders and removers, add 'by_reference' => false to your entity form type. Check the code for details.