             (message "Not moving %s" original-name)))))
     (svn-status-update)))
 
-(defun svn-status-revert-file ()
+(defun svn-status-revert ()
+  "Run `svn revert' on all selected files.
+See `svn-status-marked-files' for what counts as selected."
   (interactive)
   (let* ((marked-files (svn-status-marked-files))
          (num-of-files (length marked-files)))
-    ;; do we actually need the `if' below?
-    (if (= 0 num-of-files)
-        (message "No file selected for reverting!")
-      (when (yes-or-no-p (if (= 1 num-of-files)
-                             (format "Revert %s? " (svn-status-line-info->filename
-                                                    (car marked-files)))
-                           (format "Revert %d files? " num-of-files)))
-        (message "reverting: %S" (svn-status-marked-file-names))
-        (svn-status-create-arg-file svn-status-temp-arg-file ""
-                                    (svn-status-marked-files) "")
-        (svn-run-svn t t 'revert "revert" "--targets" svn-status-temp-arg-file)))))
+    (when (yes-or-no-p
+           (if (= 1 num-of-files)
+               (format "Revert %s? " (svn-status-line-info->filename (car marked-files)))
+             (format "Revert %d files? " num-of-files)))
+      (message "reverting: %S" (svn-status-marked-file-names))
+      (svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
+      (svn-run-svn t t 'revert "revert" "--targets" svn-status-temp-arg-file))))
+
+(defun svn-status-rm (force)
+  "Run `svn rm' on all selected files.
+See `svn-status-marked-files' for what counts as selected.
+When called with a prefix argument add the command line switch --force."
+  (interactive "P")
+  (let* ((marked-files (svn-status-marked-files))
+         (num-of-files (length marked-files)))
+    (when (yes-or-no-p
+           (if (= 1 num-of-files)
+               (format "%sRemove %s? " (if force "Force " "") (svn-status-line-info->filename (car marked-files)))
+             (format "%sRemove %d files? " (if force "Force " "") num-of-files)))
+      (message "removing: %S" (svn-status-marked-file-names))
+      (svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
+      (if force
+          (svn-run-svn t t 'rm "rm" "--force" "--targets" svn-status-temp-arg-file)
+        (svn-run-svn t t 'rm "rm" "--targets" svn-status-temp-arg-file)))))
 
 (defun svn-status-update-cmd ()
   (interactive)

                 ((eq svn-process-cmd 'mv)
                  (svn-status-update)
                  (message "svn mv finished"))
                 ((eq svn-process-cmd 'cleanup)
                  ;;(svn-status-show-process-buffer-internal t)
                  (message "svn cleanup finished"))

    ["svn mv..." svn-status-mv t]
    ["Up Directory" svn-status-examine-parent t]
    ["Elide Directory" svn-status-toggle-elide t]
    ["svn revert" svn-status-revert t]
    ["svn cleanup" svn-status-cleanup t]
    ["Show Process Buffer" svn-status-show-process-buffer t]
    ("Property"
