     (let ((action)
           (name)
           (done)
+          (skip)
           (result))
       (goto-char (point-min))
       (setq svn-status-commit-rev-number nil)
-      (while (not done)
-        (cond ((looking-at "Sending")
+      (setq skip nil) ; set to t whenever we find a line not about a committed file
+      (while (< (point) (point-max))
+        (cond ((= (point-at-eol) (point-at-bol)) ;skip blank lines
+               (setq skip t))
+              ((looking-at "Sending")
                (setq action 'committed))
               ((looking-at "Adding")
                (setq action 'added))
               ((looking-at "Deleting")
                (setq action 'deleted))
               ((looking-at "Transmitting file data")
-               ;; perhaps parse next line also (Committed revision 96.)
-               (re-search-forward "Committed revision \\([0-9]+\\)")
+               (setq skip t))
+              ((looking-at "Committed revision \([0-9]+\)")
                (setq svn-status-commit-rev-number
                      (string-to-number (match-string-no-properties 1)))
-               (setq done t))
-              (t
+               (setq skip t))
+              (t ;; this should never be needed(?)
                (setq action 'unknown)))
-        (unless done
+        (unless skip                                ;found an interesting line
           (forward-char 15)
           (when svn-status-operated-on-dot
             ;; when the commit used . as argument, delete the trailing directory

                                            local-rev
                                            last-change-rev
                                            author
                                            svn-update-mark)
                                      svn-status-info))
          (setq revision-width (max revision-width
                                    (length (number-to-string local-rev))

See `svn-status--line-info->directory-p' for what counts as a directory."
  :group 'psvn-faces)

;based on font-lock-warning-face
(defface svn-status-locked-face
  '((t
     (:weight bold :foreground "Red")))
  "Face for the phrase \"[ LOCKED ]\" *svn-status* buffers."
  :group 'psvn-faces)

;based on vhdl-font-lock-directive-face
(defface svn-status-switched-face
  '((((class color)
      (background light))
     (:foreground "CadetBlue"))
    (((class color)
      (background dark))
     (:foreground "Aquamarine"))
    (t
     (:bold t :italic t)))
  "Face for the phrase \"(switched)\" non-directories in svn status buffers."
  :group 'psvn-faces)

(defvar svn-highlight t)
;; stolen from PCL-CVS
(defun svn-add-face (str face &optional keymap)
  "Return string STR decorated with the specified FACE.
If `svn-highlight' is nil then just return STR."
  (when svn-highlight
    ;; Do not use `list*'; cl.el might not have been loaded.  We could
    ;; put (require 'cl) at the top but let's try to manage without.
