diff --git a/Database/Persist/Store.hs b/Database/Persist/Store.hs
--- a/Database/Persist/Store.hs
+++ b/Database/Persist/Store.hs
@@ -396,8 +396,9 @@
 instance PersistField a => PersistField [a] where
     toPersistValue = PersistList . map toPersistValue
     fromPersistValue (PersistList l) = fromPersistList l
-    fromPersistValue (PersistText t)
-        | Just values <- A.decode' (L.fromChunks [TE.encodeUtf8 t]) = fromPersistList values
+    fromPersistValue (PersistText t) = fromPersistValue (PersistByteString $ TE.encodeUtf8 t)
+    fromPersistValue (PersistByteString bs)
+        | Just values <- A.decode' (L.fromChunks [bs]) = fromPersistList values
     fromPersistValue x = Left $ "Expected PersistList, received: " ++ show x
     sqlType _ = SqlString
 
@@ -405,10 +406,11 @@
     toPersistValue = PersistList . map toPersistValue . S.toList
     fromPersistValue (PersistList list) =
       either Left (Right . S.fromList) $ fromPersistList list
-    fromPersistValue (PersistText t)
-        | Just values <- A.decode' (L.fromChunks [TE.encodeUtf8 t]) =
+    fromPersistValue (PersistText t) = fromPersistValue (PersistByteString $ TE.encodeUtf8 t)
+    fromPersistValue (PersistByteString bs)
+        | Just values <- A.decode' (L.fromChunks [bs]) =
             either Left (Right . S.fromList) $ fromPersistList values
-    fromPersistValue x = Left $ "Expected PersistList, received: " ++ show x
+    fromPersistValue x = Left $ "Expected PersistSet, received: " ++ show x
     sqlType _ = SqlString
 
 fromPersistList :: PersistField a => [PersistValue] -> Either T.Text [a]
@@ -431,8 +433,9 @@
 
 getPersistMap :: PersistValue -> Either T.Text [(T.Text, PersistValue)]
 getPersistMap (PersistMap kvs) = Right kvs
-getPersistMap (PersistText t)
-    | Just pairs <- A.decode' (L.fromChunks [TE.encodeUtf8 t]) = Right pairs
+getPersistMap (PersistText t)  = getPersistMap (PersistByteString $ TE.encodeUtf8 t)
+getPersistMap (PersistByteString bs)
+    | Just pairs <- A.decode' (L.fromChunks [bs]) = Right pairs
 getPersistMap x = Left $ "Expected PersistMap, received: " ++ show x
 
 fromPersistMap :: PersistField v
diff --git a/persistent.cabal b/persistent.cabal
--- a/persistent.cabal
+++ b/persistent.cabal
@@ -1,5 +1,5 @@
 name:            persistent
-version:         0.8.0.1
+version:         0.8.0.2
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
