OK. The code of the macro is as follows: ------------------------ ;;; Variables are recognized by their first char being a '?' (defmacro syntactic-variable-p (x) `(and (symbolp ',x) (equal '#\? (aref (symbol-name ',x) 0)))) ------------------------ and examples of its use: (SBCL with SLIME and the GNU Emacs): ------------------------ CL-USER> (syntactic-variable-p ?var1) T CL-USER> (syntactic-variable-p ?var-foo) T CL-USER> (syntactic-variable-p non-var1) NIL CL-USER> (syntactic-variable-p nonvar-foobarbaz) NIL CL-USER> ------------------------ but however: (CCL w/ SLIME and the GNU Emacs:) ------------------------ CL-USER> (syntactic-variable-p ?var) T CL-USER> (syntactic-variable-p nonvar1) NIL CL-USER> (syntactic-variable-p foobarbaz) NIL CL-USER> (cond ((syntactic-variable-p ?x) (print 'True)) (t (print 'Nontrue))) TRUE TRUE CL-USER> ------------------------ so it seems that my LISP program has somehow corrupted the virtual memory, which is giving phantom "errors". kind regards, Antti J Ylikoski