diff --git a/Audio/TagLib/TagLib.hsc b/Audio/TagLib/TagLib.hsc
--- a/Audio/TagLib/TagLib.hsc
+++ b/Audio/TagLib/TagLib.hsc
@@ -37,6 +37,7 @@
 import Control.Monad (liftM)
 import System.Glib.FFI
 import System.Glib.UTFString
+import Data.ByteString (ByteString, useAsCString)
 
 type Void = Word8    
 type TagFilePtr = Ptr Void
@@ -52,10 +53,10 @@
 -- TagLib will try to guess the file type.
 -- Return 'Nothing' if the file type cannot be determined 
 -- or the file cannot opened.
-tagFileOpen :: String -> IO (Maybe TagFile)
+tagFileOpen :: ByteString -> IO (Maybe TagFile)
 tagFileOpen filename = do
   -- This use withCString, not utf8 string.
-  withCString filename $ \filenamePtr -> do
+  useAsCString filename $ \filenamePtr -> do
     ptr <- taglib_file_new filenamePtr
     if ptr == nullPtr 
         then return Nothing
diff --git a/libtagc.cabal b/libtagc.cabal
--- a/libtagc.cabal
+++ b/libtagc.cabal
@@ -1,5 +1,5 @@
 Name:           libtagc
-Version:        0.11.0
+Version:        0.11.1
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2010 Andy Stewart
@@ -28,7 +28,8 @@
 
 Library
         build-depends:  base >= 4 && < 5, 
-                        glib >= 0.11 && < 0.12
+                        glib >= 0.11.0 && < 0.12.0,
+                        bytestring
 						
         exposed-modules:
           Audio.TagLib.TagLib
