We keep getting loops, which should be impossible - and when the path width is more than 1 it misses out a bit in the bottom right of a corner from horizontal to up.
....I forgot to commit, didn't I?