It seems like properly enabling lexical binding in ediff will be a bit tricky. If you look at the code of ediff-find-file, you will see the use of `symbol-value' everywhere. This line is the source of the error in the bug report: (defun ediff-find-file (file-var buffer-name &optional last-dir hooks-var) "Visit FILE and arrange its buffer to Ediff's liking. ... deleted." (let* ((file (symbol-value file-var)) ;<------------------ I see symbol-value used at 4 places in ediff.el. So all of those will need replaced with variable access in lexical scope. -- Kaushal Modi