diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,6 @@
+0.3.0.2
+* Avoid using OverloadedStrings for Builder.
+
 0.3.0.1
 * Fix normalization bug where certain combination of options would fail to add a trailing slash.
 
diff --git a/src/URI/ByteString/Internal.hs b/src/URI/ByteString/Internal.hs
--- a/src/URI/ByteString/Internal.hs
+++ b/src/URI/ByteString/Internal.hs
@@ -144,7 +144,7 @@
 -- possible, 'serializeURIRef' will be fine. If you intend on
 -- comparing URIs (say for caching purposes), you'll want to use this.
 normalizeURIRef :: URINormalizationOptions -> URIRef a -> Builder
-normalizeURIRef o uri@(URI {..}) = normalizeURI o uri
+normalizeURIRef o uri@(URI {..})       = normalizeURI o uri
 normalizeURIRef o uri@(RelativeRef {}) = normalizeRelativeRef o Nothing uri
 
 
@@ -171,8 +171,8 @@
   authority <> path <> query <> fragment
   where
     path
-      | unoSlashEmptyPath && BS.null rrPath  = "/"
-      | segs == [""] = "/"
+      | unoSlashEmptyPath && BS.null rrPath  = BB.fromByteString "/"
+      | segs == [""] = BB.fromByteString "/"
       | otherwise  = mconcat (intersperse (c8 '/') (map urlEncodePath segs))
     segs = dropSegs (BS.split slash (pathRewrite rrPath))
     pathRewrite
@@ -369,7 +369,7 @@
   query <- queryParser opts
   frag  <- mFragmentParser
   case frag of
-    Just _ -> endOfInput `orFailWith` MalformedFragment
+    Just _  -> endOfInput `orFailWith` MalformedFragment
     Nothing -> endOfInput `orFailWith` MalformedQuery
   return $ RelativeRef authority path query frag
 
diff --git a/uri-bytestring.cabal b/uri-bytestring.cabal
--- a/uri-bytestring.cabal
+++ b/uri-bytestring.cabal
@@ -1,5 +1,5 @@
 name:                uri-bytestring
-version:             0.3.0.1
+version:             0.3.0.2
 synopsis:            Haskell URI parsing as ByteStrings
 description: uri-bytestring aims to be an RFC3986 compliant URI parser that uses efficient ByteStrings for parsing and representing the URI data.
 license:             BSD3
