![](https://secure.gravatar.com/avatar/4b09f3ff1f75487b361645fd66b9bfd8.jpg?s=120&d=mm&r=g)
Antonio Menezes Leitao <aml@gia.ist.utl.pt> writes:
and maybe it was that 'package' variable being referenced after changing to a different buffer that was causing the problem. An hard to believe explanation, I'm sure, but just in case, I experimented replacing that 'package' variable by another gensym, using:
I can believe that. The reason for problems like this are those -*- package: ... -*- file variables. This make package a buffer local variable in Emacs and interacts badly dynamic bindings. E.g.: (progn (make-variable-buffer-local 'my-var) (setq my-var 1) (message "%s" my-var) (let ((my-var 2)) (message "%s" my-var) (with-temp-buffer (message "%s" my-var)))) my-var in the temp buffer is nil. One would think that a simple rule like: first search let-bound variables, then buffer local variables and then global variables would avoid such problems but this is obviously not what Emacs does. It's probably a good idea to avoid the -*- package: ... -*- thing as the file has probably a in-package form already or a least rename it to Package. I committed you change. Thanks. Helmut.