diff --git a/Cloud/AWS/Lib/FromText.hs b/Cloud/AWS/Lib/FromText.hs
--- a/Cloud/AWS/Lib/FromText.hs
+++ b/Cloud/AWS/Lib/FromText.hs
@@ -90,6 +90,10 @@
       where
         fmt = "%FT%T"
 
+instance FromText () where
+    fromText _ = return ()
+    fromNamedText _ = maybe (return ()) fromText
+
 deriveFromText :: String -> [String] -> DecsQ
 deriveFromText dstr strs = do
     ctrs <- map (\(NormalC name _) -> name) <$> cons
diff --git a/Cloud/AWS/Lib/ToText.hs b/Cloud/AWS/Lib/ToText.hs
--- a/Cloud/AWS/Lib/ToText.hs
+++ b/Cloud/AWS/Lib/ToText.hs
@@ -5,10 +5,10 @@
     ) where
 
 import Data.ByteString (ByteString)
-import qualified Data.ByteString.Char8 as BC
 import Data.IP (IPv4, AddrRange)
 import Data.Text (Text)
 import qualified Data.Text as T
+import qualified Data.Text.Encoding as T
 import Data.Time (UTCTime)
 import qualified Data.Time as Time
 import System.Locale (defaultTimeLocale)
@@ -22,7 +22,7 @@
     toText t = t
 
 instance ToText ByteString where
-    toText = T.pack . BC.unpack
+    toText = T.decodeUtf8
 
 instance ToText Bool where
     toText True  = "true"
diff --git a/aws-sdk-text-converter.cabal b/aws-sdk-text-converter.cabal
--- a/aws-sdk-text-converter.cabal
+++ b/aws-sdk-text-converter.cabal
@@ -1,5 +1,5 @@
 name:                aws-sdk-text-converter
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            The text converter for aws-sdk.
 description:         The text converter for aws-sdk.
 license:             BSD3
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -3,6 +3,7 @@
 
 import Control.Applicative
 import Data.IP
+import Data.Text
 import Data.Time
 import Test.Hspec
 import Test.HUnit
@@ -30,12 +31,18 @@
 instance Arbitrary (AddrRange IPv4) where
     arbitrary = makeAddrRange <$> arbitrary <*> choose (0, 32)
 
+instance Arbitrary Text where
+    arbitrary = pack <$> arbitrary
+
 prop_mclass :: (Eq a, FromText a, ToText a) => a -> Bool
 prop_mclass a = fromText (toText a) == Just (Just a)
 
 testNothing :: IO ()
 testNothing = (fromText "" :: Maybe Int) @=? Nothing
 
+testConvertNothingToUnit :: IO ()
+testConvertNothingToUnit = fromNamedText "unit" Nothing @=? Just ()
+
 data A = B | C deriving (Eq, Show)
 
 instance ToText A where
@@ -60,3 +67,5 @@
         prop "Maybe Int" (prop_mclass :: Int -> Bool)
         it "convert Nothing" testNothing
         prop "deriveFromText" (prop_class :: A -> Bool)
+        prop "Unit" (\t -> fromText t == Just ())
+        it "convert Nothing to Unit" testConvertNothingToUnit
