The speedo takes its signal from the front passenger side wheel (assuming right hand drive) using the same sensor as the ABS and TC.
The sensor is mounted just behind the brake disc. It 'reads' a toothed ring (reluctor) which is part of the drive shaft.
Check the sensor connector is tight and the sensor itself is correctly fitted. If it's just a fraction too far away from the reluctor it wont work.
If a piece of rust has stuck on the end of the sensor it wont work, if you have access to compressed air give it a blow down.
Check the reluctor ring is not rusted or cracked. It may even have split and fallen off.
A very badly worn wheel bearing can also cause problems.
freddie
May 2009