           (let ((details-hidden-p  (and (boundp 'dired-details-state)  (eq 'hidden dired-details-state))))
             (widen)
             (when details-hidden-p (dired-details-show))
-            (goto-char start)
-            (setq start  (line-beginning-position))
+            (goto-char beg)
+            (setq beg  (line-beginning-position))
             (goto-char end)
-            (setq end    (line-end-position))
-            (narrow-to-region start end)
+            (when (and (bolp) (> end beg)) (backward-char))
+            (setq end  (line-end-position))
+            (narrow-to-region beg end)
             (dired-toggle-marks)
             (when details-hidden-p (dired-details-hide)))
-        (narrow-to-region start end)
+        (narrow-to-region beg end)
         (dired-toggle-marks))))
   (when (and (get-buffer-window (current-buffer))  (fboundp 'fit-frame-if-one-window))
     (fit-frame-if-one-window)))

  :type 'boolean :group 'Dired-Plus)

;;;###autoload
(defcustom diredp-max-frames 200
  "*Max number of frames, for commands that find files in separate frames.
These commands are `dired-do-find-marked-files' and


;;;###autoload
(defun diredp-untag-this-file (tags &optional prefix arg) ; Bound to `T -'
  "In Dired, remove some tags from this file.
With a prefix arg, remove all tags from the file.
You need library `bookmark+.el' to use this command."
  (interactive (progn (diredp-ensure-bookmark+)
