                   (setq svn-status-files-to-commit nil)
                   (message "svn commit finished"))
                  ((eq svn-process-cmd 'update)
-                  (svn-status-show-process-buffer-internal t)
+                  (svn-status-show-process-output 'update t)
                   (svn-status-update)
                   (message "svn update finished"))
                  ((eq svn-process-cmd 'add)

    (setq buffer-read-only t)))

(defun svn-status-show-process-buffer ()
  (interactive)
  (svn-status-show-process-buffer-internal))

(defun svn-status-add-file-recursively (arg)
  "Run `svn add' on all selected files.

  (other-window 1))

(defun svn-status-show-process-output (cmd &optional scroll-to-top)
  "Display the result of a svn command.
Consider svn-status-window-alist to choose the buffer name."
  (let ((window-mode (cadr (assoc cmd svn-status-window-alist))))
    (cond ((eq window-mode nil) ;; use *svn-process* buffer
           (setq svn-status-last-output-buffer-name "*svn-process*"))
          ((eq window-mode t) ;; use *svn-info* buffer
           (setq svn-status-last-output-buffer-name "*svn-info*"))
          ((eq window-mode 'invisible) ;; don't display the buffer
           (setq svn-status-last-output-buffer-name nil))
          (t
           (setq svn-status-last-output-buffer-name window-mode)))
    (when svn-status-last-output-buffer-name
      (if window-mode
          (progn
            (when (eq (current-buffer) "*svn-status*")
              (delete-other-windows))
            (pop-to-buffer "*svn-process*")
            (switch-to-buffer (get-buffer-create svn-status-last-output-buffer-name))
            (let ((buffer-read-only nil))
              (delete-region (point-min) (point-max))
              (insert-buffer-substring "*svn-process*")
              (when scroll-to-top
                (goto-char (point-min))))
            (other-window 1))
        (svn-status-show-process-buffer-internal scroll-to-top)))))


(defun svn-status-show-svn-log (arg)
