diff --git a/Data/Convertible/Instances.hs b/Data/Convertible/Instances.hs
--- a/Data/Convertible/Instances.hs
+++ b/Data/Convertible/Instances.hs
@@ -36,4 +36,5 @@
 import Data.Convertible.Instances.C()
 import Data.Convertible.Instances.Map()
 import Data.Convertible.Instances.Num()
+import Data.Convertible.Instances.Text()
 import Data.Convertible.Instances.Time()
diff --git a/Data/Convertible/Instances/Text.hs b/Data/Convertible/Instances/Text.hs
new file mode 100644
--- /dev/null
+++ b/Data/Convertible/Instances/Text.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE CPP #-}
+
+{- |
+   Module     : Data.Convertible.Instances.Text
+   Copyright  : Copyright (C) 2011 MailRank, Inc.
+   License    : LGPL
+
+   Maintainer : John Goerzen <jgoerzen@complete.org>
+   Stability  : provisional
+   Portability: portable
+
+Text instances for Convertible.
+
+Copyright (C) 2011 MailRank, Inc. <bos@mailrank.com>
+
+All rights reserved.
+
+For license and copyright information, see the file COPYRIGHT
+
+These instances perform conversion between text-like types such as
+Text, ByteString, and the like.
+
+The instances do /not/ include conversions between ByteString and
+Text or String, since such conversions cannot safely be performed
+without knowing the encoding of the ByteString.
+-}
+
+module Data.Convertible.Instances.Text()
+where
+
+import Data.Convertible.Base
+import qualified Data.Text as TS
+import qualified Data.Text.Lazy as TL
+import qualified Data.ByteString as BS
+import qualified Data.ByteString.Lazy as BL
+import Data.Word (Word8)
+
+-- Text
+
+instance Convertible [Char] TS.Text where
+    safeConvert = Right . TS.pack
+
+instance Convertible TS.Text [Char] where
+    safeConvert = Right . TS.unpack
+
+instance Convertible [Char] TL.Text where
+    safeConvert = Right . TL.pack
+
+instance Convertible TL.Text [Char] where
+    safeConvert = Right . TL.unpack
+
+#if MIN_VERSION_text(0,8,1)
+instance Convertible TS.Text TL.Text where
+    safeConvert = Right . TL.fromStrict
+
+instance Convertible TL.Text TS.Text where
+    safeConvert = Right . TL.toStrict
+#else
+instance Convertible TS.Text TL.Text where
+    safeConvert = Right . TL.fromChunks . (:[])
+
+instance Convertible TL.Text TS.Text where
+    safeConvert = Right . TS.concat . TL.toChunks
+#endif
+
+-- ByteString
+
+instance Convertible [Word8] BS.ByteString where
+    safeConvert = Right . BS.pack
+
+instance Convertible BS.ByteString [Word8] where
+    safeConvert = Right . BS.unpack
+
+instance Convertible [Word8] BL.ByteString where
+    safeConvert = Right . BL.pack
+
+instance Convertible BL.ByteString [Word8] where
+    safeConvert = Right . BL.unpack
+
+instance Convertible BS.ByteString BL.ByteString where
+    safeConvert = Right . BL.fromChunks . (:[])
+
+instance Convertible BL.ByteString BS.ByteString where
+    safeConvert = Right . BS.concat . BL.toChunks
diff --git a/convertible.cabal b/convertible.cabal
--- a/convertible.cabal
+++ b/convertible.cabal
@@ -1,5 +1,5 @@
 Name: convertible
-Version: 1.0.9.1
+Version: 1.0.10.0
 License: LGPL
 Maintainer: John Goerzen <jgoerzen@complete.org>
 Author: John Goerzen
@@ -59,7 +59,7 @@
       Build-Depends: time<1.1.3
   else
     Build-Depends: base<3
-  Build-Depends: mtl
+  Build-Depends: mtl, text >= 0.7
 
   GHC-Options: -O2 -Wall -fno-warn-orphans
 
@@ -70,6 +70,7 @@
                    Data.Convertible.Instances.C,
                    Data.Convertible.Instances.Map,
                    Data.Convertible.Instances.Num,
+                   Data.Convertible.Instances.Text,
                    Data.Convertible.Instances.Time
 
   --Other-Modules: Database.HDBC.Utils
