I was working to implement your proposed solution - it seemed most logical to place overlay_prev_vec in the buffer struct, but placing the three necessary properties( overlay_prev_vec, noverlays_prev, prev_point_motion_hook ) in the structure caused the 'make' process to return a segfault. I'm going to look into this more in a few days, but do you have any idea why this would be happening, or another implementation strategy that wouldn't run into this problem? I followed the instructions about placing non-Lisp_Objects above the 'name' variable, so that is most likely not the issue. The last few lines produced by running make were: LC_ALL=C `/bin/pwd`/temacs -batch -l loadup dump Segmentation fault make: *** [emacs] Error 139 Thanks, Nathaniel Flath On Sat, Oct 17, 2009 at 9:09 PM, Stefan Monnier wrote: > > Any comments ont his? > > I haven't had much time to look into it, but I wonder: what happens when > you switch buffer? > > I get the impression that your code currently will consider > a buffer-switch as a kind of cursor movement to "very far away" (so it > will run the leave&enter hooks). I think it would be better to keep > track of overlay_prev_vec as a per-buffer (or probably better > per-window, tho that again introduces some questions when > a window-buffer is changed) information. > > > Stefan >