De véspera colocar o bacalhau de molho e trocar sempre a água.
No dia seguinte, lave bem o bacalhau e coloque em uma panela com água para dar uma fervida.
Tire a pele e as espinhas, desfie e reserve.
Leve ao fogo uma panela com a manteiga, o alho, a cebola e deixe dourar.
Acrescente os tomates ou o molho de tomate, o bacalhau reservado, refogue tudo.
Depois acrescente a farinha já dissolvida no leite e sem parar de mexer, ferver por mais ou menos uns 5 minutos, ou até dar consistência de creme.
Retire do fogo, junte as gemas batidas, os champignons e mexa bem.
Em uma forma refratária, coloque uma camada de creme de bacalhau e uma de mussarela, alternadamente.
A última deve ser de mussarela.
Leve ao fogo para gratinar.