This subtle pointer arithmetic thingy is (I'm very sure of it) the cause