     (with-current-buffer (get-buffer-create svn-process-buffer-name)
       (setq old-process-default-dir default-directory)
       (setq default-directory directory)) ;; update the default-directory for the *svn-process* buffer
-  (svn-run nil t 'parse-info "info" ".")
-  (with-current-buffer svn-process-buffer-name
-    ;; (message "svn-status-repo-for-path: %s: default-directory: %s directory: %s old-process-default-dir: %s" svn-process-buffer-name default-directory directory old-process-default-dir)
-    (setq default-directory old-process-default-dir)
-    (goto-char (point-min))
-    (let ((case-fold-search t))
-      (if (search-forward "repository root: " nil t)
-          (buffer-substring-no-properties (point) (svn-point-at-eol))
-        (when (search-forward "repository uuid: " nil t)
+    (svn-status-parse-info t)
+    (or (plist-get svn-status-base-info :repository-root)
+        (if (plist-get svn-status-base-info :repository-uuid)
+            (concat "Svn Repo UUID: " (plist-get svn-status-base-info :repository-uuid))
           (message "psvn.el: Detected an old svn working copy in '%s'. Please check it out again to get a 'Repository Root' entry in the svn info output."
-                   default-directory)
-          (concat "Svn Repo UUID: " (buffer-substring-no-properties (point) (svn-point-at-eol)))))))))
+                   default-directory)))))
 
 (defun svn-status-base-dir (&optional start-directory)
   "Find the svn root directory for the current working copy.

      (set-buffer proc-buf)
      (setq default-directory dir
            svn-status-remote (when arg t))
      (set-buffer cur-buf)
      (if want-edit
          (let ((svn-status-edit-svn-command t))
            (svn-run t t 'status "status" svn-status-default-status-arguments status-option))

               "Run dired instead? ")
              dir
              (svn-wc-adm-dir-name)))
        (dired dir)))))

(defvar svn-status-display-new-status-buffer nil)
(defun svn-status-1 (dir &optional arg)
