           (svn-update-status-msg (point) "")
           (forward-line))))))
 
+;; Translate backslashes to forward slashes, because that is what
+;; Emacs uses internally even on Windows and it permits us to compare
+;; file name strings.
+(defun svn-normalise-path (path)
+  (replace-regexp-in-string "\\\\" "/" path t t))
+
 (defun svn-status-filter (proc str)
   (save-excursion
     (set-buffer (process-buffer proc))

      (while (looking-at
              "\\([ ACDGIMRX?!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? \\([* ]\\) \\(........\\) \\(........\\) \\(............\\) \\([^ ].*\\)\n")
        (let ((status (match-string 1))
              (filename (match-string 6)))
          (delete-region (match-beginning 0)
                         (match-end 0))
	  (when (or (not svn-file-filter)

      (while (looking-at
              "\\([AD]     \\)    \\(.*\\)\n")
        (let ((status (match-string 1))
              (filename (svn-normalise-path (match-string 2))))
          (if (string= status "A     ")
              (setq status "A  +  "))
          (delete-region (match-beginning 0)
