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.