       (set-buffer "*svn-process*")
       (setq svn-status-info nil)
       (goto-char (point-min))
-      (while (> (- (point-at-eol) (point-at-bol)) 0)
-        (if (or (looking-at "Head revision:[ ]+\\([0-9]+\\)") ;svn version < 0.29
-                (looking-at "Status against revision:[ ]+\\([0-9]+\\)")); svn version >= 0.29
-            (setq svn-status-head-revision (match-string 1))
+      (while (< (point) (point-max))
+        (cond
+         ((= (point-at-eol) (point-at-bol))	;skip blank lines
+          nil)
+         ((or (looking-at "Head revision:[ ]+\([0-9]+\)") ;svn version < 0.29
+              (looking-at "Status against revision:[ ]+\([0-9]+\)")); svn version >= 0.29
+          ;; the above message appears for the main listing plus once for each svn:externals entry
+          (unless svn-status-head-revision
+            (setq svn-status-head-revision (match-string 1))))
+         ((looking-at "Performing status on external item at '\(.*\)'")
+          ;; The *next* line has info about the directory named in svn:externals
+          ;; we should parse it, and merge the info with what we have already know
+          ;; but for now just ignore the line completely
+          (forward-line)
+          )
+         (t
           (setq svn-marks (buffer-substring (point) (+ (point) 8))
-                svn-file-mark (elt svn-marks 0) ; 1st column
-                svn-property-mark (elt svn-marks 1) ; 2nd column
-                svn-update-mark (elt svn-marks 7)) ; 8th column
+                svn-file-mark (elt svn-marks 0)              ; 1st column
+                svn-property-mark (elt svn-marks 1)          ; 2nd column
+                ;;svn-locked-mark (elt svn-marks 2)	           ; 3rd column
+                ;;svn-added-with-history-mark (elt svn-marks 3); 4th column
+                ;;svn-switched-mark (elt svn-marks 4)          ; 5th column
+                svn-update-mark (elt svn-marks 7))           ; 8th column
 
           (when (eq svn-property-mark ?\ ) (setq svn-property-mark nil))
           (when (eq svn-update-mark ?\ ) (setq svn-update-mark nil))

;; svn-prop-edit-mode:
;; --------------------------------------------------------------------------------

(defvar svn-prop-edit-mode-map () "Keymap used in svn-prop-edit-mode buffers.")

(when (not svn-prop-edit-mode-map)
  (setq svn-prop-edit-mode-map (make-sparse-keymap))

;; $Id$

;; psvn.el is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

