Improve positioning code.

Signed-off-by: Paul Brook <paul@nowt.org>