diff --git a/Keymap.hs b/Keymap.hs
--- a/Keymap.hs
+++ b/Keymap.hs
@@ -48,7 +48,7 @@
 import qualified Data.ByteString.Char8 as P
 import qualified Data.Map as M
 
-data Direction = Forwards | Backwards
+data Direction = Forwards | Backwards deriving stock Eq
 data Zipper = Zipper { cur :: !String, back :: ![String], front :: ![String] }
 data SearchWhat = SearchFiles | SearchDirs
 data SearchType = SearchType
@@ -159,8 +159,8 @@
               SearchFiles -> jumpToMatchFile
               SearchDirs  -> jumpToMatch
         in endSearchWith
-            do jumpy (Just pat) case schDir typ of Forwards -> True; _ -> False
-            do if take 1 hist == [pat] then hist else pat : hist
+            do jumpy (Just pat) (schDir typ == Forwards)
+            do pat : filter (/= pat) hist
 
 
 ------------------------------------------------------------------------
@@ -260,7 +260,7 @@
         ['t'],   jumpToPlaying)
     ,("Select and play next track",
         ['d'],   playNext *> jumpToPlaying)
-    ,("Cycle through normal, random, and loop modes",
+    ,("Cycle through normal, random, loop, and single modes",
         ['m'],   nextMode)
     ,("Refresh the display",
         ['\^L'], UI.resetui)
diff --git a/hmp3-ng.cabal b/hmp3-ng.cabal
--- a/hmp3-ng.cabal
+++ b/hmp3-ng.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name:           hmp3-ng
-version:        2.17.1
+version:        2.17.2
 synopsis:       A 2019 fork of an ncurses mp3 player written in Haskell
 description:    An mp3 player with a curses frontend.  Playlists are populated by
                 passing file and directory names on the command line.  'h' displays
