Stefan Monnier writes: >> - (save-excursion >> + (let ((p (point))) >> (dolist (node nodes) >> - (ewoc--refresh-node pp node dll))))) >> + (ewoc--refresh-node pp node dll)) >> + (goto-char p)))) > > Hmm... I think this is an improvement when point is within the refreshed > node, but a regression when it's further down in the buffer. You are right. Take a look at the new patch. ewoc-invalidate now save and restore point line and column offset in the current node. testewoc.el is the code I used to test the patch: 1. emacs -Q 2. M-x load-file testewoc.el 3. M-x testewoc 4. move point somewhere and M-x testewoc-invalidate Point must remain in the same line and column within the node. The nodes is represented with characters "0", "1" and "2".