Hibernate: dúvida na remoção de objeto

Senhores, tenho uma dúvida aqui… estou utilizando Hibernate e salvando um determinado objeto (Pai) que possui um Set<> de outro objeto (Filho). Até aí tdo bem, está salvando perfeitamente. Alterações realizadas nesses objetos também estão sendo gravadas normalmente. A questão é quando eu tento excluir um item (Filho) desse Set<>, ele não remove automaticamente, simplesmente não faz nada.

Imagine a seguinte situação: fiz um saveUpdate de um Pai com três filhos. Salvou perfeitamente. Em seguida, fiz um saveUpdate desse mesmo Pai, porém com apenas dois filhos. O terceiro filho continua lá!

Alguém sabe pq isso pode estar acontecendo?

Segue um esboço dos pojos pra ilustrar melhor

[code]@Entity
@Table(name = “Pai”)
public class Pai implements java.io.Serializable {

private Integer idPai;
private String name;
private String description;
private Set<Filho> filhos = new HashSet<Filho>(0);

@OneToMany(cascade = {CascadeType.PERSIST,
                      CascadeType.MERGE,
                      CascadeType.REMOVE}, fetch = FetchType.LAZY, mappedBy = "pai")
@org.hibernate.annotations.Cascade (value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
public Set<Filho> getFilhos() {
    return this.filhos;
}

//demais get's e setter's

}[/code][code]@Entity
@Table(name = “Filho”)
public class Filho implements java.io.Serializable {

private Integer idFilho;
private Pai pai;
private String name;
private String description;

//get's e setter's

}[/code]Espero ter conseguido ser claro…

Obrigado a todos!