diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,4 +1,8 @@
-* v0.9.10
+* v0.9.1.0
+    - Support partition in Network.MPD.Status
+    - Ignore unknown key-value pairs in Network.MPD.status so that it breaks much less often.
+
+* v0.9.0.10
     - Port it for newer network library
 
 * v0.9.0, 2014-09-21
diff --git a/libmpd.cabal b/libmpd.cabal
--- a/libmpd.cabal
+++ b/libmpd.cabal
@@ -1,5 +1,5 @@
 Name:               libmpd
-Version:            0.9.0.10
+Version:            0.9.1.0
 Synopsis:           An MPD client library.
 Description:        A client library for MPD, the Music Player Daemon.
 Category:           Network, Sound
diff --git a/src/Network/MPD/Applicative/Status.hs b/src/Network/MPD/Applicative/Status.hs
--- a/src/Network/MPD/Applicative/Status.hs
+++ b/src/Network/MPD/Applicative/Status.hs
@@ -104,7 +104,8 @@
                 "audio"          -> audio $ \x -> a { stAudio           = x }
                 "updating_db"    -> num   $ \x -> a { stUpdatingDb      = Just x }
                 "error"          -> Right         a { stError           = Just (UTF8.toString v) }
-                _                -> unexpectedPair
+                "partition"      -> Right a { stPartition = UTF8.toString v }
+                _                -> Right a
                 where
                     unexpectedPair = Left ("unexpected key-value pair: " ++ show p)
                     int   f = maybe unexpectedPair (Right . f) (parseNum v :: Maybe Int)
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
@@ -303,8 +303,11 @@
 -- @current - new = 0   if current - new < 0@
 --
 -- but @current / 0@ still yields a division by zero exception.
-newtype Volume = Volume Int deriving (Eq, Ord, Show)
+newtype Volume = Volume Int deriving (Eq, Ord)
 
+instance Show Volume where
+    showsPrec p (Volume v) = showsPrec p v
+
 instance Enum Volume where
     toEnum = Volume . min 100 . max 0
     fromEnum (Volume x) = x
@@ -377,7 +380,9 @@
              -- | If True, a song will be removed after it has been played.
            , stConsume         :: Bool
              -- | Last error message (if any).
-           , stError           :: Maybe String }
+           , stError           :: Maybe String
+             -- | The name of MPD partition.
+           , stPartition       :: String }
     deriving (Eq, Show)
 
 defaultStatus :: Status
@@ -388,7 +393,8 @@
            , stNextSongPos = Nothing, stNextSongID = Nothing
            , stBitrate = Nothing, stXFadeWidth = 0, stMixRampdB = 0
            , stMixRampDelay = 0, stAudio = (0,0,0), stUpdatingDb = Nothing
-           , stSingle = False, stConsume = False, stError = Nothing }
+           , stSingle = False, stConsume = False, stError = Nothing
+           , stPartition = "" }
 
 instance Default Status where
     def = defaultStatus
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
@@ -36,7 +36,9 @@
 import qualified Data.Foldable as F
 import           System.IO (IOMode(..))
 import Network.Socket
-  ( SockAddr(..)
+  ( Family(..)
+  , SockAddr(..)
+  , SocketType(..)
   , addrAddress
   , addrFamily
   , addrProtocol
@@ -119,12 +121,21 @@
 mpdOpen = MPD $ do
     (host, port) <- ask
     runMPD close
-    addr:_ <- liftIO $ getAddrInfo (Just defaultHints) (Just host) (Just $ show port)
+    addr:_ <- liftIO $ getAddr host port
     sock <- liftIO $ socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr)
     mHandle <- liftIO (safeConnectTo (sock,(addrAddress addr)))
     modify (\st -> st { stHandle = mHandle })
     F.forM_ mHandle $ \_ -> runMPD checkConn >>= (`unless` runMPD close)
     where
+        getAddr addr@('/':_) _ = return [
+                defaultHints { addrFamily = AF_UNIX
+                             , addrSocketType = Stream
+                             , addrAddress = SockAddrUnix addr
+                             }
+            ]
+
+        getAddr host port = getAddrInfo (Just defaultHints) (Just host) (Just $ show port)
+
         safeConnectTo (sock,addr) =
             (connect sock addr) >> (Just <$> socketToHandle sock ReadWriteMode)
             `catchAny` const (return Nothing)
