Deixe descongelar as postas de bacalhau, depois passe-as por água, deite-as para um tacho e junte água fria até ficarem bem cobertas. Leve ao lume até ferver, desligue o lume e deixe o bacalhau arrefecer dentro da água.
Descasque as batatas, corte-as em pedaços, lave-os e deixe-os escorrer. Escorra o bacalhau, passe a água pelo passador de rede fina, deite-a para um tacho, leve ao lume, tempere com sal, deixe ferver, adicione as batatas e deixe cozer durante 20 minutos. Depois escorra as batatas e reduza-as a puré.
Limpe o bacalhau de pele e espinhas e desfaça-o finamente como se fosse para pastéis. Retire a pele e as pevides aos tomates e pique-os. Descasque e pique também a cebola e os dentes de alho, deite-os para um tacho, adicione o azeite, leve ao lume e deixe cozinhar até ficar bem douradinho. Junte o tomate picado, deixe cozinhar durante 10 minutos, adicione depois o bacalhau, misture, junte de seguida o puré de batata, envolva bem, retire do lume e deixe arrefecer um pouco. Adicione as gemas e as natas, mexa novamente muito bem, rectifique o sal, tempere com uma pitada de pimenta e mexa.
Barre um tabuleiro de louça com margarina, deite-lhe a mistura anterior, espalhe, polvilhe com o queijo ralado e leve ao forno durante 20 minutos ou até ficar douradinho. Retire e sirva quente, polvilhado com salsa picada. Pode acompanhar com grelos salteados se gostar.