BTW, while I looked at this, I found this spurious lookup in `byte-compile-lexical-variables': #+begin_src emacs-lisp (defun byte-compile-form (form &optional for-effect) (let ((byte-compile--for-effect for-effect)) (cond ((not (consp form))..10..) ((symbolp (car form)) (let* ((fn (car form))..4..) (when (memq fn '(set symbol-value run-hooks..4..) (pcase (cdr form) (`(',var . ,_) (when (assq var byte-compile-lexical-variables) ;; <--- here (byte-compile-report-error (format-message "%s cannot use lexical var `%s'" fn var))) ...))))))))) #+end_src shouldn't the `assq' be `memq'? Michael.