Coza o bacalhau durante três minutos em 0,5 l de água. Retire a pele e as espinhas e parta-o em lascas pequenas. Reserve a água.
Descasque as batatas, lave-as, corte-as em pequenos cubos e frite-as em óleo quente, sem deixar alourar.
Depois de fritas, escorra-as bem e coloque-as sobre papel absorvente para lhes tirar o excesso de gordura. Tempere-as com sal.
Corte as cebolas em meias luas finas e refogue-as em azeite, juntamente com alho picado, até ficarem translúcidas.
Junte as lascas de bacalhau, deixe refogar mais um pouco, e misture depois as batatas e envolva-as no preparado.
Prepare um molho de béchamel:
derreta a manteiga num tachinho, acrescente a farinha e mexa bem; junte, aos poucos, 100 ml de água da cozedura do bacalhau, mexendo sempre; junte depois o leite e as natas e mexa até borbulhar; e, finalmente, retire do fogo e tempere com sal, pimenta, noz moscada e suco de limão.
Misture 2/3 do béchamel na preparado de bacalhau e batatas, e, disponha a mistura num tabuleiro, previamente untado com manteiga.
Cubra a superfície com o restante molho, polvilhe com queijo ou pão ralado e leve ao forno até alourar bem. Sirva com esparregado.