Support negative page offsets, fixing #35