diff --git a/Data/Git/Storage/Object.hs b/Data/Git/Storage/Object.hs
--- a/Data/Git/Storage/Object.hs
+++ b/Data/Git/Storage/Object.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 -- |
 -- Module      : Data.Git.Storage.Object
 -- License     : BSD-style
@@ -59,8 +59,22 @@
 import Data.Word
 import Text.Printf
 
+#if MIN_VERSION_bytestring(0,10,0)
 import Data.ByteString.Lazy.Builder hiding (word8)
+#else
+import qualified Data.ByteString.Lazy.Char8 as LC
 
+-- tiny builder interface like for bytestring < 0.10 that
+-- use normal lazy bytestring concat.
+string7 :: String -> L.ByteString
+string7 = LC.pack
+
+byteString :: ByteString -> L.ByteString
+byteString = LC.fromChunks . (:[])
+
+toLazyByteString = id
+#endif
+
 -- | location of an object in the database
 data ObjectLocation = NotFound | Loose Ref | Packed Ref Word64
         deriving (Show,Eq)
@@ -249,7 +263,6 @@
     where
           toNamedRef s r = mconcat [string7 s, byteString (toHex r),eol]
           toParent       = toNamedRef "parent "
-          toCommitExtra :: CommitExtra -> [Builder]
           toCommitExtra (CommitExtra k v) = [byteString k, eol] ++
                                             (concatMap (\l -> [byteString " ", byteString l, eol]) $ linesLast v)
 
diff --git a/hit.cabal b/hit.cabal
--- a/hit.cabal
+++ b/hit.cabal
@@ -1,5 +1,5 @@
 Name:                hit
-Version:             0.5.2
+Version:             0.5.3
 Synopsis:            Git operations in haskell
 Description:
     .
@@ -35,7 +35,7 @@
 Library
   Build-Depends:     base >= 4 && < 5
                    , mtl
-                   , bytestring >= 0.10
+                   , bytestring >= 0.9
                    , attoparsec >= 0.10.1
                    , parsec     >= 3
                    , containers
