Running `C-x 4 a' (add-change-log-entry-other-window) in a derived mode of Diff mode (psvn-diff-mode, magit-diff-mode, and so on) does not open the correct ChangeLog file. The following patch fixes the problem. --- lisp/vc/add-log.el~ 2010-09-21 14:11:28.216630100 -0400 +++ lisp/vc/add-log.el 2010-10-25 16:46:49.808297800 -0400 @@ -701,7 +701,7 @@ Optional arg BUFFER-FILE overrides `buffer-file-name'." ;; If we are called from a diff, first switch to the source buffer; ;; in order to respect buffer-local settings of change-log-default-name, etc. - (with-current-buffer (let ((buff (if (eq major-mode 'diff-mode) + (with-current-buffer (let ((buff (if (derived-mode-p 'diff-mode) (car (ignore-errors (diff-find-source-location)))))) (if (buffer-live-p buff) buff Perhaps, more of the cases of Emacs's Lisp that have (eq major-mode ...) should be converted to (derived-mode-p ...). Obviously, they'll need to be studied on a case-by-case basis since there might be cases when only the exact major-mode is intended to be matched. Thanks for Emacs, /a