anchor.diff:    (when (sheet-child pane)
       (allocate-space (sheet-child pane) width height)))
   
  -;;; TOP-LEVEL-SHEET
  +;;;; TOP-LEVEL-SHEET
   
   (defclass top-level-sheet-pane (composite-pane)
     ()
  
positive.code: 	  (with-bounding-rectangle* (x1 y1 x2 y2)
  	    (stream-output-history pane)
  	    ;; Should we now get rid of the output history?
  	    (reset-output-history pane)
  	    (let ((width (- x2 x1))
  		  (height (- y2 y1)))
  
negative.code:       (setf sr (make-space-requirement :width 100 :height 100)))
      (merge-user-specified-options pane sr)))
  
  (defmethod change-space-requirements :before ((pane space-requirement-options-mixin)
                                                &key (width :nochange) (min-width :nochange) (max-width :nochange)
                                                     (height :nochange) (min-height :nochange) (max-height :nochange)
                                                     (x-spacing :nochange) (y-spacing :nochange)
                                                &allow-other-keys)
    (with-slots (user-width user-min-width user-max-width
                 user-height user-min-height user-max-height
                 (user-x-spacing x-spacing)
                 (user-y-spacing y-spacing))
        pane
      (unless (eq width      :nochange) (setf user-width      width))
      (unless (eq min-width  :nochange) (setf user-min-width  min-width))
      (unless (eq max-width  :nochange) (setf user-max-width  max-width))
      (unless (eq height     :nochange) (setf user-height     height))
      (unless (eq min-height :nochange) (setf user-min-height min-height))
      (unless (eq max-height :nochange) (setf user-max-height max-height))
      (unless (eq x-spacing  :nochange) (setf user-x-spacing  x-spacing))
      (unless (eq y-spacing  :nochange) (setf user-y-spacing  y-spacing)) ))
  
  ;;;; LAYOUT-PROTOCOL-MIXIN
  
  ;;; Note
  
  ;; This is how I read the relevant section of the specification:
  ;;
  ;; - space is only allocated / composed when the space allocation
  ;;   protocol is invoked, that is when layout-frame is called.
  ;;
  ;; - CHANGE-SPACE-REQUIREMENTS is only for
  ;;   . reparsing the user space options
  ;;   . flushing the space requirement cache of that pane.
  ;;
  ;; - when within CHANGING-SPACE-REQUIREMENTS, the method for
  ;;   CHANGING-SPACE-REQUIREMENTS on the top level sheet should not
  ;;   invoke the layout protocol but remember that the SR of the frame
  ;;   LAYOUT-FRAME then is then called when leaving
  ;;   CHANGING-SPACE-REQUIREMENTS.
  ;;
  ;; - NOTE-SPACE-REQUIREMENTS-CHANGED is solely for the user.
  ;;
  ;; --GB 2003-03-16
  
  (defmethod allocate-space :around ((pane layout-protocol-mixin) width height)
    (unless (and (eql (pane-current-width pane) width)
  