Oh dear...
Ummm... here are the macros that I used in the path-between... (defmacro nlet (name bindings &body body) (let ((args (mapcar #'first bindings)) (vals (mapcar #'second bindings))) `(labels ((,name ,args ,@body)) (,name ,@vals)) )) (defmacro when-let ((var val) &body body) `(let ((,var ,val)) (when ,var ,@body))) Dr. David McClain dbm@refined-audiometrics.com