anchor.diff:      (nth response-id-num (object-data dialog %*response-id-key*))))
   
   
  -(defmethod signal-connect ((dialog dialog) signal function &key object)
  -  (case signal
  -    (response
  -     #'(lambda (dialog response-id-num)
  -	 (let ((response-id (%dialog-find-response-id dialog response-id-num)))
  -	   (cond
  -	    ((eq object t)  (funcall function dialog response-id))
  -	    (object (funcall function object response-id))
  -	    (t (funcall function response-id))))))
  +(defmethod signal-connect ((dialog dialog) signal function &key object after)
  +  (let ((response-id-num (%dialog-find-response-id-num dialog signal)))
  +    (cond
  +     (response-id-num
  +      (call-next-method
  +       dialog 'response
  +       #'(lambda (dialog id)
  +	   (when (= id response-id-num)
  +	     (cond
  +	      ((eq object t) (funcall function dialog))
  +	      (object (funcall function object))
  +	      (t (funcall function)))))
  +       :object t :after after))
       (t
  -     (call-next-method))))
  -
  +     (call-next-method)))))
  +
  +
  +(defbinding dialog-run () nil
  +  (dialog dialog))
   
   (defbinding dialog-response (dialog response-id) nil
     (dialog dialog)
  -  ((%dialog-find-response-id-num dialog response-id nil) int))
  -  
  -(defbinding %dialog-set-default-response () nil
  -  (dialog dialog)
  -  (response-id-num int))
  -
  -(defun dialog-set-default-response (dialog response-id)
  -  (%dialog-set-default-response
  -   dialog (%dialog-find-response-id-num dialog response-id nil)))
  -
  -(defbinding dialog-set-response-sensitive (dialog response-id sensitive) nil
  -  (dialog dialog)
  -  ((%dialog-find-response-id-num dialog response-id nil) int)
  -  (sensitive boolean))
  +  ((%dialog-find-response-id-num dialog response-id nil t) int))
   
   
   (defbinding %dialog-add-button () button
  
positive.code: 
  
  
  ;;; Dialog
  
  (defmethod initialize-instance ((dialog dialog) &rest initargs)
    (apply #'call-next-method dialog (plist-remove initargs :child))
    (dolist (button-definition (get-all initargs :button))
      (apply #'dialog-add-button dialog button-definition))
    (dolist (child (get-all initargs :child))
      (apply #'dialog-add-child dialog (mklist child))))
  
  
  (defvar %*response-id-key* (gensym))
  
  (defun %dialog-find-response-id-num (dialog response-id create-p)
    (or
     (cadr (assoc response-id (rest (type-expand-1 'response-type))))
     (let* ((response-ids (object-data dialog %*response-id-key*))
  
negative.code: 
  
  ;;; Bin
  
  (defun (setf bin-child) (child bin)
    (when-bind (current-child (bin-child bin))
  