diff --git a/src/XMMS2/Client/Bindings/Medialib.chs b/src/XMMS2/Client/Bindings/Medialib.chs
--- a/src/XMMS2/Client/Bindings/Medialib.chs
+++ b/src/XMMS2/Client/Bindings/Medialib.chs
@@ -22,9 +22,13 @@
   , medialibAddEntryFull
   , medialibAddEntryEncoded
   , medialibGetInfo
+  , medialibImportPath
+  , medialibImportPathEncoded
+  , medialibRehash
   , medialibGetId
   , medialibGetIdEncoded
   , medialibRemoveEntry
+  , medialibMoveEntry
   , medialibEntryPropertySetInt
   , medialibEntryPropertySetIntWithSource
   , medialibEntryPropertySetStr
@@ -32,7 +36,9 @@
   , medialibEntryPropertyRemove
   , medialibEntryPropertyRemoveWithSource
   , xformMediaBrowse
+  , xformMediaBrowseEncoded
   , broadcastMedialibEntryChanged
+  , broadcastMedialibEntryAdded
   ) where
 
 #include <xmmsclient/xmmsclient.h>
@@ -63,10 +69,25 @@
  } -> `Result' takeResult* #}
 
 {# fun medialib_get_info as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
  } -> `Result' takeResult* #}
 
+{# fun medialib_import_path as ^
+ { withConnection* `Connection'
+ , withCString*    `String'
+ } -> `Result' takeResult* #}
+
+{# fun medialib_import_path_encoded as ^
+ { withConnection* `Connection'
+ , withCString*    `String'
+ } -> `Result' takeResult* #}
+
+{# fun medialib_rehash as ^
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ } -> `Result' takeResult* #}
+
 {# fun medialib_get_id as ^
  { withConnection* `Connection'
  , withCString*    `String'
@@ -82,56 +103,70 @@
  , cIntConv        `Int32'
  } -> `Result' takeResult* #}
 
+{# fun medialib_move_entry as ^
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
+ } -> `Result' takeResult* #}
+
 {# fun medialib_entry_property_set_int as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'      ,
-   withCString*    `String'     ,
-   cIntConv        `Int32'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
+ , cIntConv        `Int32'
  }  -> `Result' takeResult* #}
 
 {# fun medialib_entry_property_set_int_with_source as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'      ,
-   withCString*    `String'     ,
-   withCString*    `String'     ,
-   cIntConv        `Int32'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
+ , withCString*    `String'
+ , cIntConv        `Int32'
  }  -> `Result' takeResult* #}
 
 {# fun medialib_entry_property_set_str as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'      ,
-   withCString*    `String'     ,
-   withCString*    `String'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
+ , withCString*    `String'
  }  -> `Result' takeResult* #}
 
 {# fun medialib_entry_property_set_str_with_source as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'      ,
-   withCString*    `String'     ,
-   withCString*    `String'     ,
-   withCString*    `String'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
+ , withCString*    `String'
+ , withCString*    `String'
  }  -> `Result' takeResult* #}
 
 {# fun medialib_entry_property_remove as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'      ,
-   withCString*    `String'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
  }  -> `Result' takeResult* #}
 
 {# fun medialib_entry_property_remove_with_source as ^
- { withConnection* `Connection' ,
-   cIntConv        `Int32'      ,
-   withCString*    `String'     ,
-   withCString*    `String'
+ { withConnection* `Connection'
+ , cIntConv        `Int32'
+ , withCString*    `String'
+ , withCString*    `String'
  }  -> `Result' takeResult* #}
 
 {# fun xform_media_browse as ^
- { withConnection* `Connection' ,
-   withCString*    `String'
+ { withConnection* `Connection'
+ , withCString*    `String'
  }  -> `Result' takeResult* #}
 
+{# fun xform_media_browse_encoded as ^
+ { withConnection* `Connection'
+ , withCString*    `String'
+ }  -> `Result' takeResult* #}
 
+
 {# fun broadcast_medialib_entry_changed as ^
  { withConnection* `Connection'
  } -> `Result' takeResult* #}
 
+{# fun broadcast_medialib_entry_added as ^
+ { withConnection* `Connection'
+ } -> `Result' takeResult* #}
diff --git a/src/XMMS2/Client/Medialib.hs b/src/XMMS2/Client/Medialib.hs
--- a/src/XMMS2/Client/Medialib.hs
+++ b/src/XMMS2/Client/Medialib.hs
@@ -23,13 +23,19 @@
   , medialibAddEntryFull
   , medialibAddEntryEncoded
   , medialibGetInfo
+  , medialibImportPath
+  , medialibImportPathEncoded
+  , medialibRehash
   , medialibGetId
   , medialibGetIdEncoded
   , medialibRemoveEntry
+  , medialibMoveEntry
   , medialibEntryPropertySet
   , medialibEntryPropertyRemove
   , xformMediaBrowse
+  , xformMediaBrowseEncoded
   , broadcastMedialibEntryChanged
+  , broadcastMedialibEntryAdded
   ) where
 
 import Control.Applicative
@@ -43,39 +49,81 @@
 
 
 data BrowseEntry
-  = BrowseEntry { entryPath  :: String
-                , entryIsDir :: Bool }
+  = BrowseEntry
+    { entryPath  :: EncodedURL
+    , entryIsDir :: Bool
+    }
 
 instance ValueGet BrowseEntry where
   valueGet v = do
     dict <- valueGet v
     maybe (fail "not a browse entry") return $ do
-      path <- lookupString "realpath" dict `mplus` lookupString "path" dict
+      path <- lookupString "realpath" dict <|> lookupString "path" dict
       dirp <- (1 ==) <$> lookupInt32 "isdir" dict
       return BrowseEntry { entryPath = path, entryIsDir = dirp }
 
 
-medialibAddEntry :: Connection -> String -> IO (Result Default ())
+medialibAddEntry
+  :: Connection
+  -> URL
+  -> IO (Result Default ())
 medialibAddEntry xmmsc url =
   liftResult $ B.medialibAddEntry xmmsc url
 
-medialibAddEntryFull :: Connection -> String -> [String] -> IO (Result Default ())
+medialibAddEntryFull
+  :: Connection
+  -> URL
+  -> Dict String
+  -> IO (Result Default ())
 medialibAddEntryFull xmmsc url args =
   liftResult $ B.medialibAddEntryFull xmmsc url =<< valueNew args
 
-medialibAddEntryEncoded :: Connection -> String -> IO (Result Default ())
+medialibAddEntryEncoded
+  :: Connection
+  -> EncodedURL
+  -> IO (Result Default ())
 medialibAddEntryEncoded xmmsc url =
   liftResult $ B.medialibAddEntryEncoded xmmsc url
 
-medialibGetInfo :: Connection -> Int32 -> IO (Result Default PropDict)
+medialibGetInfo
+  :: Connection
+  -> MediaId
+  -> IO (Result Default PropDict)
 medialibGetInfo xmmsc id =
   liftResult $ B.medialibGetInfo xmmsc id
 
-medialibGetId :: Connection -> String -> IO (Result Default Int32)
+medialibImportPath
+  :: Connection
+  -> URL
+  -> IO (Result Default ())
+medialibImportPath xmmsc url =
+  liftResult $ B.medialibImportPath xmmsc url
+
+medialibImportPathEncoded
+  :: Connection
+  -> EncodedURL
+  -> IO (Result Default ())
+medialibImportPathEncoded xmmsc url =
+  liftResult $ B.medialibImportPathEncoded xmmsc url
+
+medialibRehash
+  :: Connection
+  -> MediaId
+  -> IO (Result Default ())
+medialibRehash xmmsc id =
+  liftResult $ B.medialibRehash xmmsc id
+
+medialibGetId
+  :: Connection
+  -> URL
+  -> IO (Result Default MediaId)
 medialibGetId xmmsc url =
   liftResult $ B.medialibGetId xmmsc url
 
-medialibGetIdEncoded :: Connection -> String -> IO (Result Default Int32)
+medialibGetIdEncoded
+  :: Connection
+  -> EncodedURL
+  -> IO (Result Default MediaId)
 medialibGetIdEncoded xmmsc url =
   liftResult $ B.medialibGetIdEncoded xmmsc url
 
@@ -86,13 +134,21 @@
 medialibRemoveEntry xmmsc id =
   liftResult $ B.medialibRemoveEntry xmmsc id
 
-medialibEntryPropertySet ::
-  Connection             ->
-  Int32                  ->
-  Maybe String           ->
-  String                 ->
-  Property               ->
-  IO (Result Default ())
+medialibMoveEntry
+  :: Connection
+  -> MediaId
+  -> EncodedURL
+  -> IO (Result Default ())
+medialibMoveEntry xmmsc id url =
+  liftResult $ B.medialibMoveEntry xmmsc id url
+
+medialibEntryPropertySet
+  :: Connection
+  -> MediaId
+  -> Maybe String
+  -> String
+  -> Property
+  -> IO (Result Default ())
 medialibEntryPropertySet xmmsc id (Just src) key (PropInt32 val) =
   liftResult $ B.medialibEntryPropertySetIntWithSource xmmsc id src key val
 medialibEntryPropertySet xmmsc id Nothing key (PropInt32 val) =
@@ -102,22 +158,40 @@
 medialibEntryPropertySet xmmsc id Nothing key (PropString val) =
   liftResult $ B.medialibEntryPropertySetStr xmmsc id key val
 
-medialibEntryPropertyRemove ::
-  Connection                ->
-  Int32                     ->
-  Maybe String              ->
-  String                    ->
-  IO (Result Default ())
+medialibEntryPropertyRemove
+  :: Connection
+  -> MediaId
+  -> Maybe String
+  -> String
+  -> IO (Result Default ())
 medialibEntryPropertyRemove xmmsc id (Just src) key =
   liftResult $ B.medialibEntryPropertyRemoveWithSource xmmsc id src key
 medialibEntryPropertyRemove xmmsc id Nothing key =
   liftResult $ B.medialibEntryPropertyRemove xmmsc id key
 
-xformMediaBrowse :: Connection -> String -> IO (Result Default [BrowseEntry])
+xformMediaBrowse
+  :: Connection
+  -> URL
+  -> IO (Result Default [BrowseEntry])
 xformMediaBrowse xmmsc url =
   liftResult $ B.xformMediaBrowse xmmsc url
 
+xformMediaBrowseEncoded
+  :: Connection
+  -> EncodedURL
+  -> IO (Result Default [BrowseEntry])
+xformMediaBrowseEncoded xmmsc url =
+  liftResult $ B.xformMediaBrowseEncoded xmmsc url
 
-broadcastMedialibEntryChanged :: Connection -> IO (Result Broadcast Int32)
+
+broadcastMedialibEntryChanged
+  :: Connection
+  -> IO (Result Broadcast MediaId)
 broadcastMedialibEntryChanged =
   liftResult . B.broadcastMedialibEntryChanged
+
+broadcastMedialibEntryAdded
+  :: Connection
+  -> IO (Result Broadcast MediaId)
+broadcastMedialibEntryAdded =
+  liftResult . B.broadcastMedialibEntryAdded
diff --git a/xmms2-client.cabal b/xmms2-client.cabal
--- a/xmms2-client.cabal
+++ b/xmms2-client.cabal
@@ -1,5 +1,5 @@
 name:               xmms2-client
-version:            0.0.5.0
+version:            0.0.6.0
 
 author:             Oleg Belozeorov
 maintainer:         Oleg Belozeorov <upwawet@gmail.com>
@@ -98,4 +98,4 @@
   type:             git
   location:         git://github.com/upwawet/xmms2hs.git
   subdir:           client
-  tag:              v0.0.5.0
+  tag:              v0.0.6.0
