diff --git a/Keymap.hs b/Keymap.hs
--- a/Keymap.hs
+++ b/Keymap.hs
@@ -142,9 +142,13 @@
     zipp                      -> zipp
 
 search_del :: LexerS
-search_del = char (unkey KeyDC) `meta` \_ -> updateSearch \case
-    Zipper _ back (pv:rest) -> Zipper pv back rest
-    Zipper _ back _         -> Zipper "" back []
+search_del = char (unkey KeyDC) `meta` \_ sst -> let
+    (r, sst', ml) = flip updateSearch sst \case
+        Zipper _ back (pv:rest) -> Zipper pv back rest
+        Zipper _ back _         -> Zipper "" back []
+    newhist = let Zipper cur _ _ = schZipper $ schSpec sst
+              in filter (/=cur) $ schHist sst
+    in (r, sst'{schHist = newhist}, ml)
 
 search_esc :: LexerS
 search_esc = char '\ESC' `meta`
@@ -198,7 +202,6 @@
 
 -- "Key"s seem to be inscrutable and incomparable.
 -- So, add an orphan instance to help translate to chars.
-
 deriving stock instance Ord Key
 
 charToKey :: Char -> Key
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.2
+version:        2.17.3
 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
