         (fundamental-mode))
       (setq default-directory dir)
       (setq buffer-read-only t)
-      (let ((cmd `(,svn-program ,subcommand ,@args))
-            proc)
-        (setq proc (apply svn-start-file-process "svn" buf cmd))
+      (let ((proc (svn-start-svn-process buf (cons subcommand args))))
         (set-process-coding-system proc 'utf-8)
         (set-process-filter proc 'svn-output-filter)
         (while (eq (process-status proc) 'run)

            args (cons "-v" args)))
    (unless (memq command svn-noninteractive-blacklist)
      (setq args (cons "--non-interactive" args)))
    (setq proc (apply svn-start-file-process "svn" (current-buffer)
                      svn-program command-s args))
    (if (fboundp filter-func)
        (set-process-filter proc filter-func)
      (set-process-filter proc 'svn-default-filter))

Argument COMMAND is the svn subcommand to run.
Optional argument ARGS is a list of arguments."
  (let ((output-buffer (generate-new-buffer "*svn-stdout*")))
    (svn-call-svn nil (list output-buffer nil) nil
                  (cons (symbol-name command) args))
    (let ((stdout (with-current-buffer output-buffer (buffer-string))))
      (kill-buffer output-buffer)
      stdout)))
