Thanks Eli, that is much clearer. I can work with that explanation. Your last paragraph indicates that the button API by itself could use some improvement. How does one obtain a button to send to button-type if not button-at? Also, a confusing part of the widget documentation is this: ------- 5.4 The ‘push-button’ Widget ============================ Syntax: TYPE ::= (push-button [KEYWORD ARGUMENT]... [ VALUE ]) ------- The above syntax description of course looks like a lisp-function call of push-button. At the very least, changing this thing's name to widget-button would prevent such confusion. -- Bob