   "Jump to a dired buffer, containing the file at point."
   (interactive)
   (let* ((line-info (svn-status-get-line-information))
-         (file-full-path (svn-status-line-info->full-path line-info)))
+         (file-full-path (if line-info
+                             (svn-status-line-info->full-path line-info)
+                           default-directory)))
     (let ((default-directory
             (file-name-as-directory
-             (expand-file-name (svn-status-line-info->directory-containing-line-info line-info t)))))
-      (dired-jump))
+             (expand-file-name (if line-info
+                                   (svn-status-line-info->directory-containing-line-info line-info t)
+                                 default-directory)))))
+      (if (fboundp 'dired-jump-back) (dired-jump-back) (dired-jump))) ;; Xemacs uses dired-jump-back
     (dired-goto-file file-full-path)))
 
 (defun svn-status-possibly-negate-meaning-of-arg (arg &optional command)

  (suppress-keymap svn-log-view-mode-map)
  (define-key svn-log-view-mode-map (kbd "p") 'svn-log-view-prev)
  (define-key svn-log-view-mode-map (kbd "n") 'svn-log-view-next)
  (define-key svn-log-view-mode-map (kbd "=") 'svn-log-view-diff)
  (define-key svn-log-view-mode-map (kbd "e") 'svn-log-edit-log-entry)
  (define-key svn-log-view-mode-map (kbd "q") 'bury-buffer))


  (list nil nil))

(defun svn-status-make-dummy-dirs (dir-list old-ui-information)
  "Calculate additionally necessary directories that were not shown in the output
of 'svn status'"
  ;; (message "svn-status-make-dummy-dirs %S" dir-list)
  (let ((candidate)
        (base-dir))
    (dolist (dir dir-list)
      (setq base-dir (file-name-directory dir))
      (while base-dir
        ;;(message "dir: %S dir-list: %S, base-dir: %S" dir dir-list base-dir)
        (setq candidate (replace-regexp-in-string "/+$" "" base-dir))
        (setq base-dir (file-name-directory candidate))
        ;; (message "dir: %S, candidate: %S" dir candidate)
        (add-to-list 'dir-list candidate))))
  ;; (message "svn-status-make-dummy-dirs %S" dir-list)
  (append (mapcar (lambda (dir)
                    (svn-status-make-line-info
                     dir
                     (gethash dir old-ui-information)))
                  dir-list)
          svn-status-info))

(defun svn-status-make-line-info (&optional
                                  path
                                  ui
                                  file-mark prop-mark
                                  local-rev last-change-rev
                                  author
                                  update-mark
                                  locked-mark
                                  with-history-mark
                                  switched-mark
                                  locked-repo-mark
                                  psvn-extra-info)
  "Create a new line-info from the given arguments
Anything left nil gets a sensible default.
nb: LOCKED-MARK refers to the kind of locks you get after an error,
    LOCKED-REPO-MARK is the kind managed with `svn lock'"
  (list (or ui (svn-status-make-ui-status))
        (or file-mark ? )
        (or prop-mark ? )
        (or path "")
        (or local-rev ? )
        (or last-change-rev ? )
        (or author "")
        update-mark
        locked-mark
        with-history-mark
        switched-mark
        locked-repo-mark
        psvn-extra-info))

(defvar svn-user-names-including-blanks nil "A list of svn user names that include blanks.
To add support for the names \"feng shui\" and \"mister blank\", place the following in your .emacs:
 (setq svn-user-names-including-blanks '(\"feng shui\" \"mister blank\"))
 (add-hook 'svn-pre-parse-status-hook 'svn-status-parse-fixup-user-names-including-blanks)
")
;;(setq svn-user-names-including-blanks '("feng shui" "mister blank"))
;;(add-hook 'svn-pre-parse-status-hook 'svn-status-parse-fixup-user-names-including-blanks)

(defun svn-status-parse-fixup-user-names-including-blanks ()
  "Helper function to allow user names that include blanks.
Add this function to the `svn-pre-parse-status-hook'. The variable
`svn-user-names-including-blanks' must be configured to hold all user names that contain
blanks. This function replaces the blanks with '-' to allow further processing with
the usual parsing functionality in `svn-parse-status-result'."
  (when svn-user-names-including-blanks
    (goto-char (point-min))
    (let ((search-string (concat " \\(" (mapconcat 'concat svn-user-names-including-blanks "\\|") "\\) ")))
      (save-match-data
        (save-excursion
          (while (re-search-forward search-string (point-max) t)
            (replace-match (replace-regexp-in-string " " "-" (match-string 1)) nil nil nil 1)))))))

(defun svn-parse-status-result ()
  "Parse the `svn-process-buffer-name' buffer.
The results are used to build the `svn-status-info' variable."
  (setq svn-status-head-revision nil)
  (save-excursion
