+ ;; If we undo this change, we want to have the point back where we
+ ;; are now, and not after the first line in the rectangle (which is
+ ;; the first line to be changed by the following command).
+ (unless (eq buffer-undo-list t)
+ (push (point) buffer-undo-list))