     (decf lusty--highlighted-index)
     (when (minusp lusty--highlighted-index)
       (setq lusty--highlighted-index 0))
-    (lusty-refresh-matches-buffer)))
+    (lusty-refresh-matches-buffer :use-previous-matches)))
 
 ;;;###autoload
 (defun lusty-select-entry ()

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

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

  (loop for item in lst
        maximizing (length item)))

;; For performance, trim the matches if we can prove we can't fit them all.
(defun lusty-truncate-matches (matches)
  (let* ((lusty-buffer (get-buffer-create lusty-buffer-name))
         (max-possibly-displayable-matches
          (with-current-buffer lusty-buffer
            (* (- (frame-height) 3)
               (/ (window-width)
                  (1+ (length lusty-column-separator))))))
         (cut-off-point (nthcdr max-possibly-displayable-matches matches))
         (truncate-p (consp cut-off-point)))

    (when truncate-p
      ;; Trim down the matches
      (setf (cdr cut-off-point) nil))

    matches))

(defun* lusty--display-entries (entries)

