Preheat oven to 180°C. Using an electric mixer, beat butter and sugar until pale and fluffy, then fold in flour and add a pinch of salt. Fold in zests and juices, and stir in milk; the mixture should be quite runny. Fold in egg yolks until just combined.
Using an electric mixer, whisk egg whites to stiff peaks.
Fold one-quarter of the egg whites into the lemon mixture to lighten, then fold in the remainder until just combined.
Pour into a greased ovenproof dish, then place dish in a roasting pan. Fill pan with enough hot water to reach two-thirds up the side of the pudding dish.
Bake for 40 minutes or until golden brown.
Cool for 30 minutes before serving with vanilla ice-cream