diff --git a/hexpat.cabal b/hexpat.cabal
--- a/hexpat.cabal
+++ b/hexpat.cabal
@@ -1,6 +1,6 @@
 Cabal-Version: >= 1.6
 Name: hexpat
-Version: 0.20.6
+Version: 0.20.7
 Synopsis: XML parser/formatter based on expat
 Description:
   This package provides a general purpose Haskell XML library using Expat to
@@ -49,7 +49,7 @@
     0.20.1 fix an unfortunate crash when used in parallel processing and greatly improve
     performance; 0.20.2 make parseSaxG lazier; 0.20.3 minor build issues; 0.20.4 remove
     dependency on extensible-exceptions; 0.20.5 bump text upper bound; 0.20.6 bump text again
-    to include 1.1.0.0.
+    to include 1.1.x.x; 0.20.7 bump text again for 1.2.x.x.
 Category: XML
 License: BSD3
 License-File: LICENSE
@@ -62,7 +62,7 @@
   Kevin Jardine,
   Jacob Stanley,
   Simon Hengel
-Maintainer: Stephen Blackheath <hexpat.stephen@blacksapphire.com>
+Maintainer: Stephen Blackheath <hexpat2.stephen@blacksapphire.com>
 Copyright:
   (c) 2009 Doug Beardsley <mightybyte@gmail.com>,
   (c) 2009-2012 Stephen Blackheath <http://blacksapphire.com/antispam/>,
@@ -120,7 +120,7 @@
     base >= 3 && < 5,
     bytestring,
     transformers,
-    text >= 0.5.0.0 && < 1.2.0.0,
+    text >= 0.5.0.0 && < 1.3.0.0,
     utf8-string == 0.3.*,
     deepseq >= 1.1.0.0 && < 1.4.0.0,
     containers,
diff --git a/test/hexpat-tests.cabal b/test/hexpat-tests.cabal
--- a/test/hexpat-tests.cabal
+++ b/test/hexpat-tests.cabal
@@ -9,7 +9,7 @@
 
   build-depends:
     HUnit < 1.3,
-    QuickCheck >= 2.4.0.0,
+    QuickCheck >= 2.7.0.0,
     base >= 3 && < 5,
     bytestring,
     containers,
diff --git a/test/suite/Text/XML/Expat/ParallelTest.hs b/test/suite/Text/XML/Expat/ParallelTest.hs
--- a/test/suite/Text/XML/Expat/ParallelTest.hs
+++ b/test/suite/Text/XML/Expat/ParallelTest.hs
@@ -17,6 +17,7 @@
 import qualified Data.ByteString.Lazy.Char8 as L
 import Test.QuickCheck
 import Test.QuickCheck.Gen
+import Test.QuickCheck.Random
 import Test.HUnit hiding (Node)
 import System.IO
 import System.Random
@@ -47,19 +48,16 @@
 testParallel fork = do
     resultMVs <- replicateM nthreads $ do
         resultMV <- newEmptyMVar
-        fork $ do
-            g <- newStdGen
-            flip evalStateT g $ do
-                replicateM_ nloops $ do
-                    (g, g2) <- gets split
-                    put g
-                    let treeIn = normalizeText $ unGen (arbitrary :: Gen TNode) g 0
-                        xml = breakUp $ format' treeIn
-                        treeOut = normalizeText $ parseThrowing defaultParseOptions xml
-                    lift $ assertEqual "tree match" treeIn treeOut
-                      `catch` \exc -> do
-                          putStrLn $ "failing XML: "++concat (map B.unpack $ L.toChunks xml)
-                          throwIO (exc :: SomeException)
+        do
+            replicateM_ nloops $ do
+                g <- newQCGen
+                let treeIn = normalizeText $ unGen (arbitrary :: Gen TNode) g 30
+                    xml = breakUp $ format' treeIn
+                    treeOut = normalizeText $ parseThrowing defaultParseOptions xml
+                assertEqual "tree match" treeIn treeOut
+                  `catch` \exc -> do
+                      putStrLn $ "failing XML: "++concat (map B.unpack $ L.toChunks xml)
+                      throwIO (exc :: SomeException)
             putMVar resultMV Nothing
           `catch` \exc -> do
             putMVar resultMV $ Just (exc :: SomeException)
