Lave as batatas, corte-as ao meio e leve-as a cozer com a pele e juntamente com o bacalhau, em água temperada com pouco sal e a folha de louro. Depois escorra tudo, deixe amornar o bacalhau, retire-lhe a pele e as espinhas e lasque-o. Deixe arrefecer as batatas, rejeite-lhes a pele, passe-as num passevite, deite para uma tigela, junte o leite, tempere com noz-moscada e mexa bem.
Descasque e lave as cebolas e os dentes de alho e pique-os. Leve um tacho ao lume com o azeite, deixe aquecer, adicione a cebola e os alhos e deixe refogar até que a cebola fique macia e transparente. Junte depois os pedaços de tomate, tempere com sal e pimenta e deixe refogar bem até ficar apuradinho. Retire do lume.
Junte o bacalhau à tigela com o puré de batata, adicione também a mistura do tomate, rectifique os temperos e deite num tabuleiro. Espalhe por cima a maionese e leve ao forno pré-aquecido a 200°C até que fique douradinho. Retire do forno e sirva decorado a gosto. Pode acompanhar com salada.