                     ["Jump to source location" svn-blame-open-source-file t]
                     ["Show changeset" svn-blame-show-changeset t]
                     ["Show log" svn-blame-show-log t]
+                    ["Show blame again" svn-blame-blame-again t]
                     ["Show statistics" svn-blame-show-statistics t]
                     ["Highlight by author" svn-blame-highlight-author t]
                     ["Highlight by revision" svn-blame-highlight-revision t]))

        (delete-region (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col))
        (forward-line)
        (setq line (1+ line)))))
  (let* ((buf-name (format "*svn-blame: %s*" (file-relative-name svn-status-blame-file-name)))
         (buffer (get-buffer buf-name)))
    (when buffer
      (kill-buffer buffer))

  (when current-prefix-arg
    (setq revision (svn-status-read-revision-string "Blame for version: " "BASE")))
  (unless revision (setq revision "BASE"))
  (setq svn-status-blame-revision revision)
  (setq svn-status-blame-file-name (if file-name
                                       file-name
                                     (svn-status-line-info->filename (svn-status-get-file-information))))
  (svn-run t t 'blame "blame" svn-status-default-blame-arguments "-r" revision svn-status-blame-file-name))

(defun svn-blame-blame-again (arg)
  "Run svn blame again, using the revision before the change at point.
When point is at revision 3472, run it with 3471."
  (interactive "P")
  (let ((rev (svn-blame-rev-at-point)))
    (setq rev (number-to-string (- (string-to-number rev) 1)))
    (when current-prefix-arg
      (setq rev (svn-status-read-revision-string (format "Svn blame for rev#? ") rev)))
    (svn-status-blame rev svn-status-blame-file-name)))

(defun svn-status-show-svn-diff (arg)
  "Run `svn diff' on the current file.
