diff --git a/libmpd.cabal b/libmpd.cabal
--- a/libmpd.cabal
+++ b/libmpd.cabal
@@ -1,5 +1,5 @@
 Name:               libmpd
-Version:            0.9.0.8
+Version:            0.9.0.9
 Synopsis:           An MPD client library.
 Description:        A client library for MPD, the Music Player Daemon.
 Category:           Network, Sound
diff --git a/src/Network/MPD/Commands/Types.hs b/src/Network/MPD/Commands/Types.hs
--- a/src/Network/MPD/Commands/Types.hs
+++ b/src/Network/MPD/Commands/Types.hs
@@ -41,6 +41,7 @@
 import           Data.Default.Class
 
 import qualified Data.Map as M
+import           Data.Map.Strict (insertWith)
 import           Data.Time.Clock (UTCTime)
 import           Data.String
 
@@ -251,7 +252,7 @@
 
 -- | Add metadata tag value.
 sgAddTag :: Metadata -> Value -> Song -> Song
-sgAddTag meta value s = s { sgTags = M.insertWith' (++) meta [value] (sgTags s) }
+sgAddTag meta value s = s { sgTags = insertWith (++) meta [value] (sgTags s) }
 
 defaultSong :: Path -> Song
 defaultSong path =
diff --git a/src/Network/MPD/Core.hs b/src/Network/MPD/Core.hs
--- a/src/Network/MPD/Core.hs
+++ b/src/Network/MPD/Core.hs
@@ -116,7 +116,8 @@
             (Just <$> connectTo host (PortNumber $ fromInteger port))
             `E.catch` (\(_ :: E.SomeException) -> return Nothing)
         checkConn = do
-            [msg] <- send ""
+            singleMsg <- send ""
+            let [msg] = singleMsg
             if "OK MPD" `isPrefixOf` msg
                 then MPD $ checkVersion $ parseVersion msg
                 else return False
