In GNU Emacs 22.1.50.3 (i686-pc-linux-gnu, GTK+ Version 2.10.11) of 2007-08-28 on trpaslik Windowing system distributor `The X.Org Foundation', version 11.0.70200000 configured using `configure '--with-gtk' '--prefix' '/usr/local' '--with-xpm' '--with-jpeg' '--with-png' '--with-gif'' The recent change to vc-svn.el seems to be a little wrong. vc-svn-diff does (dolist (f files) ... where files is its first argument. However, that first argument isn't always a list. See how it's called here: (defun vc-svn-diff-tree (dir &optional rev1 rev2) "Diff all files at and below DIR." (vc-svn-diff (file-name-as-directory dir) rev1 rev2)) I was visiting a svn-controlled source file and typed C-u C-x v = RET 567 RET, hoping to compare version 567 of the current source file with the version I was looking at, but instead got the above error. Checking with "C-x ESC ESC", I see that vc-version-diff wasn't called how I was expecting it to be. I see that what was called to get the error was: (vc-version-diff "/home/chris/programs/" "567" "") whereas what I would expect to see is: (vc-version-diff "/home/chris/programs/file.c" "567" "") Somehow the first RET I typed, to the "File or dir to diff (default visited file)" prompt didn't default to the visited file, but instead literally used the directory itself.