I have an application which uses a combination of DEFINE-CONDITION, ERROR and HANDLER-CASE to handle certain exceptional situations. The call sequence basically looks like this: (when loading the file:) (define-condition model-error (error) ()) (defun foo1 (arg) (if arg (error 'model-error) 3)) (defun foo2 (arg) (handler-case (foo1 arg) (model-error () 0.0d0)) and then, from different threads: (foo2 <some value or NIL>) When I do this in a single-threaded application all goes well. When I do this in a multi threaded application with a single calculation (lisp) thread, all goes well as well. When I do this in a multi threaded application with multiple calculation threads (lisp), I get a NullPointerException somewhere deep in our CLOS code... Has anybody experienced the same? Bye, Erik.