anchor.diff:             minimize y into min-y
              maximize x into max-x
              maximize y into max-y
  -           finally (return (values min-x min-y max-x max-y)))))
  +           finally (return (if filled
  +                               (values min-x min-y max-x max-y)
  +                               (values (- min-x border)
  +                                       (- min-y border)
  +                                       (+ max-x border)
  +                                       (+ max-y border)))))))
   
   (def-grecording draw-rectangle (left top right bottom filled)
     ;; FIXME!!! If the rectangle is a line/point, MAKE-RECTANGLE* gives +NOWHERE+,
     ;; and BOUNDING-RECTANGLE* signals an error.
  -  (bounding-rectangle* (transform-region transform
  -                                         (make-rectangle* left top right bottom))))
  +  (multiple-value-bind (min-x min-y max-x max-y)
  +      (bounding-rectangle* (transform-region transform
  +                                             (make-rectangle*
  +                                              left top right bottom)))
  +    (if filled
  +        (values min-x min-y max-x max-y)
  +        (values (- min-x border)
  +                (- min-y border)
  +                (+ max-x border)
  +                (+ max-y border)))))
   
   (def-grecording draw-ellipse (center-x center-y
   			      radius-1-dx radius-1-dy radius-2-dx radius-2-dy
   			      start-angle end-angle filled)
  -  (bounding-rectangle* (transform-region transform
  -                                         (make-ellipse* center-x center-y
  -                                                        radius-1-dx radius-1-dy radius-2-dx radius-2-dy
  -                                                        :start-angle start-angle
  -                                                        :end-angle end-angle))))
  +  (multiple-value-bind (min-x min-y max-x max-y)
  +      (bounding-rectangle*
  +       (transform-region transform
  +                         (make-ellipse* center-x center-y
  +                                        radius-1-dx radius-1-dy
  +                                        radius-2-dx radius-2-dy
  +                                        :start-angle start-angle
  +                                        :end-angle end-angle)))
  +    (if filled
  +        (values min-x min-y max-x max-y)
  +        (values (- min-x border)
  +                (- min-y border)
  +                (+ max-x border)
  +                (+ max-y border)))))
   
   (def-grecording draw-text (string point-x point-y start end
   			   align-x align-y toward-x toward-y transform-glyphs)
  -  ;; FIXME!!! transformation
  +  ;; FIXME!!! Text direction.
     ;; Multiple lines?
    (let* ((width (stream-string-width stream string
                                       :start start :end end
  
positive.code:            minimize y into min-y
             maximize x into max-x
             maximize y into max-y
             finally (return (values min-x min-y max-x max-y)))))
  
  (def-grecording draw-polygon (coord-seq closed filled)
    ;; FIXME !!!
  
negative.code:   (let ((method-name (intern (format nil "MEDIUM-~A*" name)))
  	(class-name (intern (format nil "~A-OUTPUT-RECORD" name)))
  	(medium (gensym "MEDIUM"))
          (border 'border))
      `(progn
         (defclass ,class-name (graphics-displayed-output-record-mixin)
  	 ,(compute-class-vars args))
  