In a certain scenario, the orphan delete of a child entity is not performed: Parent entity must be versioned. Way to reproduce * new Parent created * Child entity is added to Parent * Parent is saved (cascaded to child) * Child is removed * Flush() Child is then added to the database with NULL as Parent pointer. Pull request is created. I would appreciate addition to next 5.4.x release.