Thanks - managed to port this one
If anyone wants to see my (very rough and dirty) port, please post below and I'll post it up.
If anyone else finds the readings unreliable - it appears that the delay_ms(2) line in the dht22.c file may be too short.
The datasheet says that the sensor requires 800us to prepare the sensor to take a reading - this was giving me a low period of sometimes less than 100us.
Increased this to 10, and it seems to work reliably now.