   ;; Window configuration may be restored intermittently.
   (setq lusty--initial-window-config (current-window-configuration)))
 
-(defun lusty-refresh-matches-buffer ()
+(defun lusty-refresh-matches-buffer (&optional use-previous-matches-p)
   "Refresh *Lusty-Matches*."
   (assert (minibufferp))
   (let* ((minibuffer-text (if lusty--wrapping-ido-p
                               ido-text
                             (minibuffer-contents-no-properties)))
          (matches
-          (ecase lusty--active-mode
-            (:file-explorer (lusty-file-explorer-matches minibuffer-text))
-            (:buffer-explorer (lusty-buffer-explorer-matches minibuffer-text))))
-         (truncated-matches (lusty-truncate-entries matches)))
+          (if use-previous-matches-p
+              lusty--previous-printed-matches
+            (lusty-truncate-matches
+             (ecase lusty--active-mode
+               (:file-explorer
+                (lusty-file-explorer-matches minibuffer-text))
+               (:buffer-explorer
+                (lusty-buffer-explorer-matches minibuffer-text)))))))
 
     ;; Update the matches window.
     (let ((lusty-buffer (get-buffer-create lusty-buffer-name)))

    (decf lusty--highlighted-index)
    (when (minusp lusty--highlighted-index)
      (setq lusty--highlighted-index 0))
    (lusty-refresh-matches-buffer)))

;;;###autoload
(defun lusty-select-entry ()

  (interactive)
  (when lusty--active-mode
    (incf lusty--highlighted-index)
    (lusty-refresh-matches-buffer :use-previous-matches)))

;;;###autoload
(defun lusty-highlight-previous ()
