Hi, another questionable (I think) assertion failure, this time in adjust_point_for_property (keyboard.c): ... /* Move away from the inside area. */ if (beg < PT && end > PT) { SET_PT ((orig_pt == PT && (last_pt < beg || last_pt > end)) /* ... */ ? (orig_pt = -1, PT < last_pt ? end : beg) /* ... */ : (PT < last_pt ? beg : end)); check_composition = check_display = 1; } ===> xassert (PT == beg || PT == end); I'm not sure exactly what happened here (gdb sess attached below though), but PT == 500, and end == 499. The context is that I was trying out `line-move-ignore-invisible' (after seeing Luc's post), setting it to `t', and viewing some messages in Gnus where invisible text was used to elide citations. At some point it died (I think I was using C-n and C-p to move past the invisible area seeing how the above variable affected things). What I'm wondering is: is this assertion reasonable? SET_PT can do non-trivial things (calling hooks etc), so assuming that point ends up being exactly what you set it too seems a bit questionable. Thanks, -Miles