anchor.diff:  
   (defmethod tree-recompute-extent ((text-record text-displayed-output-record))
     (with-slots (parent start-x start-y end-x end-y x1 y1 x2 y2) text-record
  -    (setq x1 start-x
  -	  x2 end-x
  -	  y1 start-y
  -	  y2 end-y)
  -    (recompute-extent-for-changed-child parent text-record start-x start-y end-x end-y)))
  +              (setq x1 start-x
  +                    x2 end-x
  +                    y1 start-y
  +                    y2 end-y)
  +              (when parent 
  +                (recompute-extent-for-changed-child parent text-record start-x start-y end-x end-y))))
  +
  +(defmethod setf*-output-record-position :after (nx ny (record text-displayed-output-record))
  +  (with-slots (x1 y1 x2 y2 start-x start-y end-x end-y) record
  +                  (setq start-x x1
  +                        start-y y1)
  +                        end-x x2
  +                        end-y y2))
   
   (defmethod add-character-output-to-text-record ((text-record text-displayed-output-record)
   						character text-style width height
  
positive.code:    (end-x)
     (end-y)
     (wrapped :initform nil
  	    :accessor text-record-wrapped)))
  
  (defun text-displayed-output-record-p (x)
    (typep x 'text-displayed-output-record))
  
negative.code:   (with-slots (recording-p drawing-p) stream
      (let ((old-record recording-p)
            (old-draw drawing-p))
        (unless (eq old-record record)
          (stream-close-text-output-record stream))
        (unwind-protect
             (progn
               (setq recording-p record
  