Demolhe o bacalhau. Descasque e lave as cenouras, a cebola e os dentes de alho. Rale as cenouras, corte a cebola em meias luas muito finas e pique os dentes de alho. Arranje o alho francês e lave-o. Corte-o depois em rodelas finas.
Coloque um tacho com água ao lume. Lave os ovos e leve-os a cozer juntamente com o bacalhau. Depois de tudo cozido, deixe amornar o bacalhau e retire as peles e as espinhas. Coloque depois os em água fria, descasque-os e corte-os em rodelas.
Passe 1 litro de caldo de cozer o bacalhau pelo coador de rede. Leve um tacho ao lume e derreta a margarina. Polvilhe com a farinha e mexa bem até que fique com uma cor creme. Regue com a água de cozer o bacalhau, mexendo sempre até que fique um molho cremoso.Se necessário triture para que não fique com grumos.
Aqueça o azeite e junte a cebola, os dentes de alho, a cenoura e o alho francês. Deixe saltear até que fique tudo macio. Adicione depois o bacalhau, as batatas e o molho. Envolva tudo, retire do lume e rectifique os temperos.
Coloque o preparado num pirex, disponha os ovos em rodelas por cima, o queijo ralado e leve ao forno pré-aquecido a 180 graus até que fique douradinho. Retire do forno e sirva decorado a gosto.