Ultrasonic Rangefinder (SRF05) Expected Results?

I'm pretty sure the timing readings from the SRF05 are accurate - they're consistent when an object is placed at a fixed distance away.

The problem is the conversion. If I do (pulsetime/10000)/58 I get correct results for dist > 100cm but inaccurate below.

So, for (actual dist) = 200cm, the result will be 200cm, but the result for (actual dist) = 20cm will also be 200cm. Could it be something to do with the pulseIn method returning a value in mS rather than uS? I could hack something together that divides by 10000 for some range of pulse times, and by 100000 some other ranges, to make the numbers fit. But this seems like I'm just putting a plaster on things; curing rather than preventing.

Am I missing something obvious here? It feels like it...