In GNU Emacs 23.0.60.21 (i686-pc-linux-gnu, GTK+ Version 2.12.9) of 2008-12-03 on escher 1. emacs -Q 2. Eval this: (define-minor-mode my-mm () "My minor mode." :global t (if my-mm (setq default-header-line-format '(:eval (propertize "test" 'face '(:overline t)))) (setq default-header-line-format nil))) 3. Enable my-mm. 4. C-x d foo (where `foo' is some directory with at least three files, e.g. emacs/lisp). 5. Mark three files in foo. 6. Type `C' ==> The popped up buffer *Marked Files* shows only two of the three marked files. Likewise if the value of the 'face property in my-mm has a non-nil :box attribute. In contrast, if the value of the 'face property is '(:underline t) (but not '(:underline t :overline t)), then in step 6 all three marked files are shown, though with no room to spare. I guess the basic problem here is that Emacs calculates window-height in integral equally sized line numbers. But less fundamentally and more directly, this problem arises, AFAICT, because dired-pop-to-buffer's shrink-to-fit code fails to account for header lines. To fix this it would suffice to add this sexp above the last sexp in dired-pop-to-buffer: (with-current-buffer buf (and header-line-format (progn (select-window w2) (enlarge-window 1)))) However, unless I'm missing something, fit-window-to-buffer does what dired-pop-to-buffer's shrink-to-fit code does, and moreover also handles header lines. From perusing the change logs, I found several instances where fit-window-to-buffer replaces library-specific code, and this appears to be another candidate (dired-pop-to-buffer was introduced many years before fit-window-to-buffer), in addition to fixing the above bug. I'm not able to fix the display code to let window-height return fractional line numbers, so I propose the following patch: