On 2017-01-19 19:52, npostavs@users.sourceforge.net wrote: > because even after doing (make-variable-buffer-local 'var), (let > ((var 'foo))...) still makes a global binding. > `make-variable-buffer-local' only has effect for `setq', which I > think will hardly ever happen for `inhibit-modification-hooks'. On 2017-01-19 19:52, npostavs@users.sourceforge.net wrote: > because even after doing (make-variable-buffer-local 'var), (let > ((var 'foo))...) still makes a global binding. > `make-variable-buffer-local' only has effect for `setq', which I > think will hardly ever happen for `inhibit-modification-hooks'. Hi Noam, Can you explain a bit more? I'm not sure what you meant. I tried the following to illustrate your point: (defvar aa 0) (with-temp-buffer (setq-local aa 1) (let ((b1 (current-buffer))) (with-temp-buffer (let ((aa 2)) (message "In b2: %S" aa) (with-current-buffer b1 (message "In b1: %S" aa)))))) Clément.