diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.17.0
+
+* Appropriate modifications to MPD.hs to make it compatible with
+  xmonad-0.17.
+
 # 0.15.2
 
 * Relax xmonad constraints
diff --git a/XMonad/Prompt/MPD.hs b/XMonad/Prompt/MPD.hs
--- a/XMonad/Prompt/MPD.hs
+++ b/XMonad/Prompt/MPD.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -42,7 +43,6 @@
 import Network.MPD
 import XMonad hiding ((=?))
 import XMonad.Prompt
-import Data.List as L (find, isPrefixOf, nub)
 import qualified Data.ByteString.Char8 as C
 
 -- $usage
@@ -174,7 +174,7 @@
                                load $ PlaylistName $ C.pack s
                                play Nothing
               return ())
-  
+
 -- | Load an existing playlist and play it.
 loadPlaylist :: RunMPD ->  XPConfig -> X ()
 loadPlaylist = loadPlaylistWith isPrefixOf
@@ -185,8 +185,13 @@
 -- @since 0.13.2
 addAndPlayAny :: RunMPD -> XPConfig -> [Metadata] -> X ()
 addAndPlayAny runMPD xp metas = do
+#if MIN_VERSION_xmonad_contrib(0,16,9)
+  hist <- historyCompletionP (showXPrompt (MPDPrompt "Search: ") ==)
+#else
+  let hist = historyCompletionP (showXPrompt (MPDPrompt "Search: ") ==)
+#endif
   mkXPrompt (MPDPrompt "Search") xp
-    (historyCompletionP (showXPrompt (MPDPrompt "Search: ") ==))
+    hist
     (\s -> do io $ runMPD $ do
                 clear
                 songlists <- mapM (\t -> do
diff --git a/xmonad-extras.cabal b/xmonad-extras.cabal
--- a/xmonad-extras.cabal
+++ b/xmonad-extras.cabal
@@ -1,5 +1,5 @@
 name:               xmonad-extras
-version:            0.15.3
+version:            0.17.0
 homepage:           https://github.com/xmonad/xmonad-extras
 synopsis:           Third party extensions for xmonad with wacky dependencies
 description:        Various modules for xmonad that cannot be added to xmonad-contrib
