     (with-current-buffer buf
       (erase-buffer)
       (setq default-directory dir))
-    (apply svn-process-file svn-program nil buf nil (symbol-name command) args)
+    (svn-call-svn nil buf nil (cons (symbol-name command) args))
     buf))
 
 (defun svn-run-for-stdout (command args)

(setq svn-process-file
  (if (fboundp 'process-file) 'process-file 'call-process))

(defun svn-call-process (program buffer &rest args)
  "Run svn and wait for it to finish.
Argument PROGRAM is the svn binary to run.
Argument BUFFER is the buffer in which to insert output.
Optional argument ARGS are the arguments to svn."
  (let ((proc (apply svn-start-file-process "svn" buffer program args)))
    (set-process-coding-system proc 'utf-8)
    (set-process-filter proc 'svn-output-filter)
    (while (eq (process-status proc) 'run)

      (setq buffer-read-only t)
      (erase-buffer)
      (setq default-directory dir)
      (svn-call-process diff-buf
                        "diff" "-r"
                        (format "%d:%d" (1- commit-id) commit-id)))))

