I'll admit to only ever having successfully integrated a dialog box with a lisp routine once, that I can remember. I find the relationship between the DCL and the LSP often confusing, especially WHEN values get assigned. I recently decided to pick up where I left off a couple years ago on a DCL interface for a lisp I use a lot. The dialog checks out from the point of view of layout, but I'm having trouble getting the thing to do what I want. The odd thing is that it is based on the one that I got working. The dialog doesn't seem to want to 'retire' or close when I hit the button that is supposed to return the user to the graphics screen to pick a couple of points. If you click the button the dialog persists, as you step through the routine, and the computer hangs if you click the cancel button. Here's the DCL code for the bottom row in the routine that works: : row { :spacer { width = 5;} : button { // defines the Pick Points button label = "Pick Points"; key = "pickpoints"; action = "(getpnts)"; is_default = true; fixed_width = true; width = 15; } : retirement_button { // defines the Cancel button label = "Cancel"; width = 15; is_cancel = true; key = "cancel"; } :spacer { width = 5;} } //end of row } //end of column } //end dialogue and here's the code for the same row in the dialog that doesn't: : button { // defines the Pick Points button label = "Pick Points"; key = "pickpoints"; action = "(getpnts)"; is_default = true; fixed_width = true; width = 15; } : retirement_button { // defines the Cancel button label = "Cancel"; width = 15; is_cancel = true; key = "cancel"; } :spacer { width = 5;} } //end of row } //end of column } //end dialogue In their routines the "pick points" buttons are given the same action_tile call for a done_dialog with a value. They are both supposed to trigger a routine where you pick some points, but in the new one, the routine processes all the lisp code in the getpnts routine but the dialog never closes and you don't get to pick the points, so the getpoint calls end up returning nil.When the routine tries to do math with nil values the whole thing goes boom. The dialogue closes before the error message appears. In both routines the call to the routine to process the points is located between the start_dialog and the unload_dialog calls. Anyone had similar troubles?