 
 (defun svn-status-show-svn-diff (arg)
   (interactive "P")
-  (let ((fl (list (svn-status-get-line-information))) ;; was: (svn-status-marked-files))
+  (svn-status-show-svn-diff-internal arg nil))
+
+(defun svn-status-show-svn-diff-for-marked-files (arg)
+  (interactive "P")
+  (svn-status-show-svn-diff-internal arg t))
+
+(defun svn-status-show-svn-diff-internal (arg &optional use-all-marked-files)
+  (let ((fl (if use-all-marked-files
+                (svn-status-marked-files)
+              (list (svn-status-get-line-information))))
         (clear-buf t)
         (revision (if arg (svn-status-read-revision-string "Diff with files for version: " "PREV") "BASE")))
     (while fl

  (define-key svn-status-mode-map [?l] 'svn-status-show-svn-log)
  (define-key svn-status-mode-map [?i] 'svn-status-info)
  (define-key svn-status-mode-map [?=] 'svn-status-show-svn-diff)
  (define-key svn-status-mode-map [?~] 'svn-status-get-specific-revision)
  (define-key svn-status-mode-map [?E] 'svn-status-ediff-with-revision)
  (setq svn-status-mode-mark-map (make-sparse-keymap))

(defun svn-prop-edit-svn-diff (arg)
  (interactive "P")
  (set-buffer "*svn-status*")
  (svn-status-show-svn-diff-for-marked-files arg))

(defun svn-prop-edit-svn-log ()
  (interactive)
