diff --git a/Aws/Query.hs b/Aws/Query.hs
--- a/Aws/Query.hs
+++ b/Aws/Query.hs
@@ -7,7 +7,6 @@
 import           Data.Maybe
 import           Data.Time
 import qualified Blaze.ByteString.Builder as Blaze
-import qualified Data.Ascii               as A
 import qualified Data.ByteString          as B
 import qualified Data.ByteString.Lazy     as L
 import qualified Data.ByteString.UTF8     as BU
@@ -18,14 +17,14 @@
     = SignedQuery {
         sqMethod :: Method
       , sqProtocol :: Protocol
-      , sqHost :: A.Ascii
+      , sqHost :: B.ByteString
       , sqPort :: Int
-      , sqPath :: A.Ascii
+      , sqPath :: B.ByteString
       , sqQuery :: HTTP.Query
       , sqDate :: Maybe UTCTime
-      , sqAuthorization :: Maybe A.Ascii
-      , sqContentType :: Maybe A.Ascii
-      , sqContentMd5 :: Maybe A.Ascii
+      , sqAuthorization :: Maybe B.ByteString
+      , sqContentType :: Maybe B.ByteString
+      , sqContentMd5 :: Maybe B.ByteString
       , sqBody :: L.ByteString
       , sqStringToSign :: B.ByteString
       }
@@ -49,7 +48,7 @@
                                         , fmap (\auth -> ("Authorization", auth)) sqAuthorization]
       , HTTP.requestBody = HTTP.RequestBodyLBS $ case sqMethod of
                                                    Get -> L.empty
-                                                   PostQuery -> Blaze.toLazyByteString . A.toBuilder $ HTTP.renderQueryBuilder False sqQuery
+                                                   PostQuery -> Blaze.toLazyByteString $ HTTP.renderQueryBuilder False sqQuery
       }
     where contentType = case sqMethod of
                            PostQuery -> Just "application/x-www-form-urlencoded; charset=utf-8"
@@ -61,8 +60,8 @@
        case sqProtocol of
          HTTP -> "http://"
          HTTPS -> "https://"
-      , A.toByteString sqHost
+      , sqHost
       , if sqPort == defaultPort sqProtocol then "" else BU.fromString $ ':' : show sqPort
-      , A.toByteString sqPath
-      , A.toByteString $ HTTP.renderQuery True sqQuery
+      , sqPath
+      , HTTP.renderQuery True sqQuery
       ]
diff --git a/Aws/S3/Commands/GetBucket.hs b/Aws/S3/Commands/GetBucket.hs
--- a/Aws/S3/Commands/GetBucket.hs
+++ b/Aws/S3/Commands/GetBucket.hs
@@ -10,7 +10,6 @@
 import           Control.Arrow         (second)
 import           Data.ByteString.Char8 ({- IsString -})
 import           Data.Maybe
-import qualified Data.Ascii            as A
 import qualified Data.ByteString.UTF8  as BU
 import qualified Network.HTTP.Types    as HTTP
 
@@ -49,7 +48,7 @@
 instance SignQuery GetBucket where
     type Info GetBucket = S3Info
     signQuery GetBucket {..} = s3SignQuery S3Query { 
-                                 s3QBucket = Just $ A.unsafeFromString gbBucket
+                                 s3QBucket = Just $ BU.fromString gbBucket
                                , s3QSubresources = []
                                , s3QQuery = HTTP.simpleQueryToQuery $ map (second BU.fromString) $ catMaybes [
                                               ("delimiter",) <$> gbDelimiter
diff --git a/Aws/S3/Info.hs b/Aws/S3/Info.hs
--- a/Aws/S3/Info.hs
+++ b/Aws/S3/Info.hs
@@ -5,7 +5,7 @@
 import           Aws.Http
 import           Aws.S3.Model
 import           Data.Time
-import qualified Data.Ascii   as A
+import qualified Data.ByteString as B
 
 data S3Authorization 
     = S3AuthorizationHeader 
@@ -14,7 +14,7 @@
 
 data Endpoint
     = Endpoint {
-        endpointHost :: A.Ascii
+        endpointHost :: B.ByteString
       , endpointDefaultLocationConstraint :: LocationConstraint
       , endpointAllowedLocationConstraints :: [LocationConstraint]
       }
diff --git a/Aws/S3/Query.hs b/Aws/S3/Query.hs
--- a/Aws/S3/Query.hs
+++ b/Aws/S3/Query.hs
@@ -9,19 +9,19 @@
 import           Aws.S3.Info
 import           Aws.Signature
 import           Aws.Util
-import           Control.Applicative
 import           Data.List
 import           Data.Maybe
 import           Data.Monoid
 import           Data.Time
-import qualified Data.Ascii           as A
-import qualified Data.ByteString      as B
-import qualified Data.ByteString.Lazy as L
-import qualified Network.HTTP.Types   as HTTP
+import qualified Blaze.ByteString.Builder       as Blaze
+import qualified Blaze.ByteString.Builder.Char8 as Blaze8
+import qualified Data.ByteString                as B
+import qualified Data.ByteString.Lazy           as L
+import qualified Network.HTTP.Types             as HTTP
 
 data S3Query
     = S3Query {
-        s3QBucket :: Maybe A.Ascii
+        s3QBucket :: Maybe B.ByteString
       , s3QSubresources :: HTTP.Query
       , s3QQuery :: HTTP.Query
       }
@@ -49,30 +49,29 @@
       contentType = Nothing
       path = mconcat . catMaybes $ [Just "/", s3QBucket]
       sortedSubresources = sort s3QSubresources
-      canonicalizedResource = A.fromAsciiBuilder . mconcat . catMaybes $
-                              [ Just $ A.toAsciiBuilder "/"
-                              , A.toAsciiBuilder <$> s3QBucket
-                              , Just $ HTTP.renderQueryBuilder True sortedSubresources
-                              ]
+      canonicalizedResource = Blaze.copyByteString "/" `mappend`
+                              maybe mempty Blaze.copyByteString s3QBucket `mappend`
+                              HTTP.renderQueryBuilder True sortedSubresources
       ti = case (s3UseUri, signatureTimeInfo) of
              (False, ti') -> ti'
              (True, AbsoluteTimestamp time) -> AbsoluteExpires $ s3DefaultExpiry `addUTCTime` time
              (True, AbsoluteExpires time) -> AbsoluteExpires time
       sig = signature signatureCredentials HmacSHA1 stringToSign
-      stringToSign = B.intercalate "\n" $ concat [[A.toByteString $ httpMethod method]
-                                                 , [fromMaybe "" contentMd5]
-                                                 , [fromMaybe "" contentType]
-                                                 , [A.toByteString $ case ti of
-                                                                       AbsoluteTimestamp time -> fmtRfc822Time time
-                                                                       AbsoluteExpires time -> fmtTimeEpochSeconds time]
-                                                 , [] -- canonicalized AMZ headers
-                                                 , [A.toByteString canonicalizedResource]]
+      stringToSign = Blaze.toByteString . mconcat . intersperse (Blaze8.fromChar '\n') . concat  $
+                       [[Blaze.copyByteString $ httpMethod method]
+                       , [maybe mempty Blaze.copyByteString contentMd5]
+                       , [maybe mempty Blaze.copyByteString contentType]
+                       , [Blaze.copyByteString $ case ti of
+                                                   AbsoluteTimestamp time -> fmtRfc822Time time
+                                                   AbsoluteExpires time -> fmtTimeEpochSeconds time]
+                       , [] -- canonicalized AMZ headers
+                       , [canonicalizedResource]
+                       ]
       (authorization, authQuery) = case ti of
-                                 AbsoluteTimestamp _ -> (Just $ A.unsafeFromByteString $ 
-                                                              B.concat ["AWS ", accessKeyID signatureCredentials, ":", sig], [])
+                                 AbsoluteTimestamp _ -> (Just $ B.concat ["AWS ", accessKeyID signatureCredentials, ":", sig], [])
                                  AbsoluteExpires time -> (Nothing, HTTP.simpleQueryToQuery $ makeAuthQuery time)
       makeAuthQuery time
-          = [("Expires", A.toByteString $ fmtTimeEpochSeconds time)
+          = [("Expires", fmtTimeEpochSeconds time)
             , ("AWSAccessKeyId", accessKeyID signatureCredentials)
             , ("SignatureMethod", "HmacSHA256")
             , ("Signature", sig)]
diff --git a/Aws/S3/Response.hs b/Aws/S3/Response.hs
--- a/Aws/S3/Response.hs
+++ b/Aws/S3/Response.hs
@@ -13,8 +13,8 @@
 import           Data.Maybe
 import           Data.Word
 import           Text.XML.Monad
-import qualified Data.Ascii                  as A
 import qualified Data.ByteString             as B
+import qualified Data.ByteString.Char8       as B8
 import qualified Data.Enumerator             as En
 import qualified Network.HTTP.Enumerator     as HTTPE
 import qualified Network.HTTP.Types          as HTTP
@@ -30,7 +30,7 @@
 
 instance (S3ResponseIteratee a) => ResponseIteratee (S3Response a) where
     responseIteratee status headers = do
-      let headerString = fromMaybe "" . fmap A.toString . flip lookup headers
+      let headerString = fromMaybe "" . fmap B8.unpack . flip lookup headers
       let amzId2 = headerString "x-amz-id-2"
       let requestId = headerString "x-amz-request-id"
       
diff --git a/Aws/SimpleDb/Info.hs b/Aws/SimpleDb/Info.hs
--- a/Aws/SimpleDb/Info.hs
+++ b/Aws/SimpleDb/Info.hs
@@ -3,40 +3,40 @@
 where
 
 import           Aws.Http
-import qualified Data.Ascii as A
+import qualified Data.ByteString as B
 
 data SdbInfo
     = SdbInfo {
         sdbiProtocol :: Protocol
       , sdbiHttpMethod :: Method
-      , sdbiHost :: A.Ascii
+      , sdbiHost :: B.ByteString
       , sdbiPort :: Int
       }
     deriving (Show)
              
-sdbUsEast :: A.Ascii
+sdbUsEast :: B.ByteString
 sdbUsEast = "sdb.amazonaws.com" 
 
-sdbUsWest :: A.Ascii
+sdbUsWest :: B.ByteString
 sdbUsWest = "sdb.us-west-1.amazonaws.com"
 
-sdbEuWest :: A.Ascii
+sdbEuWest :: B.ByteString
 sdbEuWest = "sdb.eu-west-1.amazonaws.com"
 
-sdbApSoutheast :: A.Ascii
+sdbApSoutheast :: B.ByteString
 sdbApSoutheast = "sdb.ap-southeast-1.amazonaws.com"
 
-sdbApNortheast :: A.Ascii
+sdbApNortheast :: B.ByteString
 sdbApNortheast = "sdb.ap-northeast-1.amazonaws.com"
              
-sdbHttpGet :: A.Ascii -> SdbInfo
+sdbHttpGet :: B.ByteString -> SdbInfo
 sdbHttpGet endpoint = SdbInfo HTTP Get endpoint (defaultPort HTTP)
                           
-sdbHttpPost :: A.Ascii -> SdbInfo
+sdbHttpPost :: B.ByteString -> SdbInfo
 sdbHttpPost endpoint = SdbInfo HTTP PostQuery endpoint (defaultPort HTTP)
               
-sdbHttpsGet :: A.Ascii -> SdbInfo
+sdbHttpsGet :: B.ByteString -> SdbInfo
 sdbHttpsGet endpoint = SdbInfo HTTPS Get endpoint (defaultPort HTTPS)
              
-sdbHttpsPost :: A.Ascii -> SdbInfo
+sdbHttpsPost :: B.ByteString -> SdbInfo
 sdbHttpsPost endpoint = SdbInfo HTTPS PostQuery endpoint (defaultPort HTTPS)
diff --git a/Aws/SimpleDb/Query.hs b/Aws/SimpleDb/Query.hs
--- a/Aws/SimpleDb/Query.hs
+++ b/Aws/SimpleDb/Query.hs
@@ -9,10 +9,12 @@
 import           Aws.SimpleDb.Info
 import           Aws.Util
 import           Data.List
-import qualified Data.Ascii           as A
-import qualified Data.ByteString      as B
-import qualified Data.ByteString.Lazy as L
-import qualified Network.HTTP.Types   as HTTP
+import           Data.Monoid
+import qualified Blaze.ByteString.Builder       as Blaze
+import qualified Blaze.ByteString.Builder.Char8 as Blaze8
+import qualified Data.ByteString                as B
+import qualified Data.ByteString.Lazy           as L
+import qualified Network.HTTP.Types             as HTTP
 
 sdbSignQuery :: [(B.ByteString, B.ByteString)] -> SdbInfo -> SignatureData -> SignedQuery
 sdbSignQuery q si sd
@@ -36,8 +38,8 @@
       ti = signatureTimeInfo sd
       cr = signatureCredentials sd
       queryAuth = [case ti of
-                     AbsoluteTimestamp time -> ("Timestamp", A.toByteString $ fmtAmzTime time)
-                     AbsoluteExpires   time -> ("Expires", A.toByteString $ fmtAmzTime time)
+                     AbsoluteTimestamp time -> ("Timestamp", fmtAmzTime time)
+                     AbsoluteExpires   time -> ("Expires", fmtAmzTime time)
                   , ("AWSAccessKeyId", accessKeyID cr)
                   , ("SignatureMethod", amzHash ah)
                   , ("SignatureVersion", "2")
@@ -47,5 +49,9 @@
       host = sdbiHost si
       path = "/"
       sig = signature cr ah stringToSign
-      stringToSign = B.intercalate "\n" $ map A.toByteString
-                       [httpMethod method, host, path, HTTP.renderQuery False q']
+      stringToSign = Blaze.toByteString . mconcat $ 
+                     intersperse (Blaze8.fromChar '\n')
+                       [Blaze.copyByteString $ httpMethod method
+                       , Blaze.copyByteString $ host
+                       , Blaze.copyByteString $ path
+                       , HTTP.renderQueryBuilder False q']
diff --git a/Aws/Util.hs b/Aws/Util.hs
--- a/Aws/Util.hs
+++ b/Aws/Util.hs
@@ -5,12 +5,12 @@
   
 import           Control.Arrow
 import           Control.Exception
+import           Data.ByteString.Char8 ({- IsString -})
 import           Data.Time
 import           System.Locale
-import qualified Data.Ascii           as A
-import qualified Data.ByteString      as B
-import qualified Data.ByteString.UTF8 as BU
-import qualified Data.Enumerator      as En
+import qualified Data.ByteString       as B
+import qualified Data.ByteString.UTF8  as BU
+import qualified Data.Enumerator       as En
 
 tryError :: (Exception e, Monad m) => En.Iteratee a m b -> En.Iteratee a m (Either e b)
 tryError m = En.catchError (fmap Right m) h
@@ -34,14 +34,14 @@
 awsFalse :: B.ByteString
 awsFalse = awsBool False
 
-fmtTime :: String -> UTCTime -> A.Ascii
-fmtTime s t = A.unsafeFromString $ formatTime defaultTimeLocale s t
+fmtTime :: String -> UTCTime -> B.ByteString
+fmtTime s t = BU.fromString $ formatTime defaultTimeLocale s t
 
-fmtRfc822Time :: UTCTime -> A.Ascii
+fmtRfc822Time :: UTCTime -> B.ByteString
 fmtRfc822Time = fmtTime "%a, %_d %b %Y %H:%M:%S GMT"
 
-fmtAmzTime :: UTCTime -> A.Ascii
+fmtAmzTime :: UTCTime -> B.ByteString
 fmtAmzTime = fmtTime "%Y-%m-%dT%H:%M:%S"
 
-fmtTimeEpochSeconds :: UTCTime -> A.Ascii
+fmtTimeEpochSeconds :: UTCTime -> B.ByteString
 fmtTimeEpochSeconds = fmtTime "%s"
diff --git a/aws.cabal b/aws.cabal
--- a/aws.cabal
+++ b/aws.cabal
@@ -6,7 +6,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.0.2
+Version:             0.0.3
 
 -- A short (one-line) description of the package.
 Synopsis:            Amazon Web Services (AWS) for Haskell
@@ -90,20 +90,19 @@
   
   -- Packages needed in order to build this package.
   Build-depends:
-                       ascii >=0.0.2 && <0.1,
                        base ==4.*,
                        base64-bytestring ==0.1.*,
-                       blaze-builder >=0.2.1.4 && <0.3,
+                       blaze-builder >=0.2.1.4 && <0.4,
                        bytestring ==0.9.*,
                        cereal ==0.3.*,
-                       containers ==0.3.*,
+                       containers >=0.3 && <0.5,
                        crypto-api ==0.5.*,
                        cryptohash ==0.6.*,
-                       directory ==1.0.*,
+                       directory >=1.0 && <1.2,
                        enumerator ==0.4.*,
-                       filepath ==1.1.*,
-                       http-enumerator >=0.4.0.1 && < 0.5,
-                       http-types >=0.5.3 && <0.6,
+                       filepath >=1.1 && <1.3,
+                       http-enumerator >=0.5 && < 0.6,
+                       http-types >=0.6 && <0.7,
                        mtl ==2.*,
                        old-locale ==1.*,
                        shortcircuit ==0.1.*,
