diff --git a/genvalidity-text.cabal b/genvalidity-text.cabal
--- a/genvalidity-text.cabal
+++ b/genvalidity-text.cabal
@@ -1,18 +1,18 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.34.6.
 --
 -- see: https://github.com/sol/hpack
 
 name:           genvalidity-text
-version:        1.0.0.0
+version:        1.0.0.1
 synopsis:       GenValidity support for Text
 category:       Testing
 homepage:       https://github.com/NorfairKing/validity#readme
 bug-reports:    https://github.com/NorfairKing/validity/issues
 author:         Tom Sydney Kerckhove
 maintainer:     syd@cs-syd.eu
-copyright:      Copyright: (c) 2016-2021 Tom Sydney Kerckhove
+copyright:      Copyright: (c) 2016-2022 Tom Sydney Kerckhove
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
diff --git a/src/Data/GenValidity/Text.hs b/src/Data/GenValidity/Text.hs
--- a/src/Data/GenValidity/Text.hs
+++ b/src/Data/GenValidity/Text.hs
@@ -68,11 +68,17 @@
 
 -- | 'textWithoutAny c' generates a 'Text' value that does not contain any 'c'.
 textWithoutAny :: Char -> Gen ST.Text
-textWithoutAny c = textWithoutAnyOf [c]
+textWithoutAny c = doubleCheck $ genTextBy $ genValid `suchThat` predicate
+  where
+    doubleCheck = (`suchThat` (ST.all predicate))
+    predicate = (/= c)
 
 -- | 'textWithoutAnyOf c' generates a 'Text' value that does not contain any character in 'ls'.
 textWithoutAnyOf :: String -> Gen ST.Text
-textWithoutAnyOf cs = ST.pack <$> genListOf (genValid `suchThat` (`notElem` cs))
+textWithoutAnyOf cs = doubleCheck $ genTextBy (genValid `suchThat` predicate)
+  where
+    doubleCheck = (`suchThat` (ST.all predicate))
+    predicate = (`notElem` cs)
 
 -- | 'textAllCaps' generates a 'Text' value with only upper-case characters.
 textAllCaps :: Gen ST.Text
diff --git a/test/Data/GenValidity/TextSpec.hs b/test/Data/GenValidity/TextSpec.hs
--- a/test/Data/GenValidity/TextSpec.hs
+++ b/test/Data/GenValidity/TextSpec.hs
@@ -13,7 +13,6 @@
 import qualified Data.Text.Internal as ST
 import qualified Data.Text.Internal.Lazy as LT
 import qualified Data.Text.Lazy as LT
-import Data.Word
 import Test.Hspec
 import Test.QuickCheck
 import Test.Validity
@@ -25,12 +24,12 @@
     [ unwords
         [ "arr:   ",
           intercalate "," $
-            map (printf "%4d" :: Word16 -> String) $ A.toList arr off len
+            map (printf "%4d") $ A.toList arr off len
         ],
       unwords
         [ "hexarr:",
           intercalate "," $
-            map (printf "%4x" :: Word16 -> String) $ A.toList arr off len
+            map (printf "%4x") $ A.toList arr off len
         ],
       unwords ["off:      ", show off],
       unwords ["len:      ", show len]
@@ -77,14 +76,22 @@
       it "contains the given character" $
         forAll arbitrary $ \c ->
           forAll (textWithA c) $ \t -> ST.unpack t `shouldSatisfy` elem c
-    describe "textWithoutAny" $
+    describe "textWithoutAny" $ do
+      it "works with \65533" $
+        let c = '\65533'
+         in forAll (textWithoutAny c) $ \t ->
+              ST.unpack t `shouldNotSatisfy` elem c
       it "never contains the given char" $
-        forAll arbitrary $ \c ->
+        forAllShrink arbitrary shrink $ \c ->
           forAll (textWithoutAny c) $ \t ->
             ST.unpack t `shouldNotSatisfy` elem c
-    describe "textWithoutAnyOf" $
+    describe "textWithoutAnyOf" $ do
+      it "works with \65533" $
+        let cs = "\65533"
+         in forAll (textWithoutAnyOf cs) $ \text ->
+              ST.unpack text `shouldNotSatisfy` (\t -> any (`elem` t) cs)
       it "never contains any of the given chars" $
-        forAll arbitrary $ \cs ->
+        forAllShrink arbitrary shrink $ \cs ->
           forAll (textWithoutAnyOf cs) $ \text ->
             ST.unpack text `shouldNotSatisfy` (\t -> any (`elem` t) cs)
   describe "Lazy Text" $ do
