> >> Actually, this makes me realize the solution to bug 1 is
> >> inadequate. Calling (undo-primitive 1) N times creates N redo
> >> records whereas (undo-primitive N) creates one.
> > No, primitive-undo does not add any undo boundary.

> Actually, now I'm not sure what you meant by "redo records".
> (primitive-undo N) will undo all the M "records" that appear before
> the next Nth undo boundary, and will correspondingly add M redo
> "records", but no boundary.

I took another look at the code and see I was mistaken on this point.
I'll work on a patch.