anchor.diff:  ;;; menu-button-submenu-pane
   
   (defclass menu-button-submenu-pane (menu-button-pane)
  -  ((frame-manager :initform nil :initarg :frame-manager)
  -   (submenu-frame :initform nil)
  -   (bottomp :initform nil :initarg :bottomp)
  -   (command-table :initform nil :initarg :command-table)))
  +  ((frame-manager
  +     :initform nil
  +     :initarg :frame-manager)
  +   (submenu-frame
  +     :initform nil)
  +   (bottomp
  +     :initform nil
  +     :initarg :bottomp)
  +   (command-table
  +     :initform nil
  +     :initarg :command-table)
  +   (dissolving ; nasty hack to prevent menus from leaking
  +     :initform nil)))
   
   (defmethod menu-children ((submenu menu-button-submenu-pane))
     (with-slots (submenu-frame) submenu
  
positive.code:       (setf submenu-frame nil))))
  
  (defmethod arm-branch ((sub-menu menu-button-submenu-pane))
    (with-slots (client frame-manager submenu-frame) sub-menu
      (arm-menu client)
      (if submenu-frame
  	(progn (mapc #'destroy-substructure (menu-children sub-menu))
  	       (mapc #'disarm-menu (menu-children sub-menu)))
  	(progn
  	  (mapc #'destroy-substructure (menu-children client))
  	  (create-substructure sub-menu sub-menu)))
      (arm-menu sub-menu)))
  
  (defmethod handle-event ((pane menu-button-submenu-pane) (event pointer-button-release-event))
    (destroy-substructure (menu-root pane)))
  
  (defmethod handle-repaint ((pane menu-button-submenu-pane) region)
    (declare (ignore region))
  
negative.code: 	(manager (frame-manager *application-frame*)))
      (if (eq type :command)
  	(make-pane-1 manager frame 'menu-button-leaf-pane
  		     :name name
  		     :label name
  		     :client client
  		     :value-changed-callback
  