Generalised firstdl()