Hi! I just got around to test this. Now, `eval-when-comple' seems to be working. Unfortunately, `eval-and-comple' is still broken. If I do C-u M-C-x eval the following with `debug-on-error' set to t, I get the backtrace below: (defun test (limit) (eval-and-compile (boundp 'parse-sexp-lookup-properties))) Debugger entered--Lisp error: (void-variable edebug-freq-count) edebug-before(1) (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties))) (progn (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))) eval((progn (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))) nil) #[128 "\301\302\303 B \"D\207" [lexical-binding quote eval progn] 5 1802730]((edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))) macroexpand((eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))) nil) macroexp-macroexpand((eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))) nil) macroexp--expand-all((eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties))))) macroexp--all-forms((edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties))))) 1) #[514 "\300 \301\"\211\204 \302 \242\303\"\202g\304 !\204+\3051$\306\307 ! \"0\202*\310\311 \"\262 \210\312 \242\" \242 =\203b \242\302 \242\303\"\211\262 \232\203J \242\202e \312 \"\240\210\211 \242=\203\\\211\202e\313 !\202e\313 !\262 \207" [function-get compiler-macro macroexp--all-forms 1 functionp (debug error) autoload-do-load indirect-function message "macroexp--expand-all: %S" macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM FUNC)"](((edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))))) edebug-after) macroexp--expand-all((edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))))) macroexp--all-forms((lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))))) 2) macroexp--expand-all((function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp (quote parse-sexp-lookup-properties)))))))) macroexp--all-forms((edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp ...))))))) 1) #[514 "\300 \301\"\211\204 \302 \242\303\"\202g\304 !\204+\3051$\306\307 ! \"0\202*\310\311 \"\262 \210\312 \242\" \242 =\203b \242\302 \242\303\"\211\262 \232\203J \242\202e \312 \"\240\210\211 \242=\203\\\211\202e\313 !\202e\313 !\262 \207" [function-get compiler-macro macroexp--all-forms 1 functionp (debug error) autoload-do-load indirect-function message "macroexp--expand-all: %S" macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM FUNC)"](((edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after ... 2 ...))))))) edebug-enter) macroexp--expand-all((edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after (edebug-before 1) 2 (boundp ...)))))))) macroexp--all-forms((lambda (limit) (edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after ... 2 ...))))))) 2) macroexp--expand-all((function (lambda (limit) (edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile ...)))))))) macroexp--all-forms((defalias (quote test) (function (lambda (limit) (edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after ... 3 ...))))))) 1) #[514 "\300 \301\"\211\204 \302 \242\303\"\202g\304 !\204+\3051$\306\307 ! \"0\202*\310\311 \"\262 \210\312 \242\" \242 =\203b \242\302 \242\303\"\211\262 \232\203J \242\202e \312 \"\240\210\211 \242=\203\\\211\202e\313 !\202e\313 !\262 \207" [function-get compiler-macro macroexp--all-forms 1 functionp (debug error) autoload-do-load indirect-function message "macroexp--expand-all: %S" macroexp--compiler-macro macroexp--expand-all] 8 "\n\n(fn FORM FUNC)"](((defalias (quote test) (function (lambda (limit) (edebug-enter (quote test) (list limit) (function (lambda nil ...))))))) defalias) macroexp--expand-all((defun test (limit) (edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after ... 2 ...)))))))) macroexpand-all((defun test (limit) (edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after ... 2 ...)))))))) eval-sexp-add-defvars((defun test (limit) (edebug-enter (quote test) (list limit) (function (lambda nil (edebug-after (edebug-before 0) 3 (eval-and-compile (edebug-after ... 2 ...)))))))) edebug-eval-defun((4)) apply(edebug-eval-defun (4)) eval-defun((4)) funcall-interactively(eval-defun (4)) call-interactively(eval-defun nil nil) command-execute(eval-defun) -- Anders On Thu, Dec 29, 2016 at 10:29 AM, Alan Mackenzie wrote: > Bug fixed. > > -- > Alan Mackenzie (Nuremberg, Germany). >