                        (svn-status-read-revision-string "Diff with files for version: " "PREV")
                      (if use-all-marked-files
                          "BASE"
-                       (if (svn-status-line-info->modified-external (car fl)) "HEAD" "BASE")))))
+                       (if (svn-status-line-info->update-available (car fl)) "HEAD" "BASE")))))
     (while fl
       (svn-run-svn nil clear-buf 'diff "diff" "-r" revision (svn-status-line-info->filename (car fl)))
       (setq clear-buf nil)

                       '(nil nil nil ""))))
    (file-name-as-directory
     (expand-file-name
      (if (and allow-self (svn-status-line-info->directory-p line-info))
          (svn-status-line-info->filename line-info)
        ;;The next `or' is because (file-name-directory "file") returns nil
        (or (file-name-directory (svn-status-line-info->filename line-info))
            "."))))))

(defun svn-status-set-user-mark (arg)
  "Set a user mark on the current file or directory.

                             (or (svn-status-line-info->historymark line-info) ? )
                             (or (svn-status-line-info->localrev line-info) "")
                             (or (svn-status-line-info->lastchangerev line-info) "")
                             (svn-status-line-info->author line-info))
                     (if svn-status-short-mod-flag-p update-available filename)
                     (if svn-status-short-mod-flag-p filename update-available)
                     (svn-status-maybe-add-string (svn-status-line-info->locked line-info)
                                                  " [ LOCKED ]" 'svn-status-locked-face)
                     (svn-status-maybe-add-string (svn-status-line-info->switched line-info)
                                                  " (switched)" 'svn-status-switched-face)
                     elide-hint)
             'svn-status-marked-face)
            "\n")))

(defun svn-status-update-buffer ()
