Descasque as batatas, corte-as em cubos e leve-os a cozer em água temperada com sal. Escorra-os depois e espalhe-os num tabuleiro untado com manteiga.
Leve o bacalhau a cozer em cerca de 0,5 L de água e, depois de cozido, escorra-o aproveitando o caldo. Limpe-o de pele e espinhas e desfie-o ou esmague-o como para pastéis de bacalhau.
Leve ao lume um tacho com o azeite e a manteiga, junte os dentes de alho e a cebola, picados, mexa até quererem alourar e adicione então o molho bechamel e as natas; mexa de novo e junte o bacalhau e 3 dl de caldo de o cozer.
Mexa bem até ferver, rectifique de sal, tempere com pimenta e noz-moscada e retire o tacho do lume. Junte por fim as gemas, mexa bem e não deixe ferver mais. Deite este preparado sobre as batatas no tabuleiro.
Por fim, polvilhe tudo com o queijo raspado ou ralado. Leve ao forno a 180°C até alourar bem, mas sem deixar queimar. Sirva quente.