it.vpos = 0;
/* Do this even if LINES is 0, so that we move back
to the beginning of the current line as we ought. */
- move_it_by_lines (&it, XINT (lines), 0);
+ if (XINT (lines) >= 0 || IT_CHARPOS (it) > 0)
+ move_it_by_lines (&it, XINT (lines), 0);
SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
}