diff --git a/BitStringRandomMonad.cabal b/BitStringRandomMonad.cabal
--- a/BitStringRandomMonad.cabal
+++ b/BitStringRandomMonad.cabal
@@ -2,7 +2,7 @@
 --  documentation, see http://haskell.org/cabal/users-guide/
 
 name:                BitStringRandomMonad
-version:             0.2.0.0
+version:             0.2.0.2
 description:         A library which turns a bytestring into a random monad.
                      Input could be any PRNG which can output a lazy
                      bytestring.
@@ -30,6 +30,21 @@
 
   -- hs-source-dirs:
   default-language:    Haskell2010
+
+Test-Suite random-monad-tests
+  type: exitcode-stdio-1.0
+  hs-source-dirs: Test
+  main-is: Tests.hs
+  build-depends: base,
+                 QuickCheck,
+                 transformers,
+                 bytestring,
+                 bitstring,
+                 mtl,
+                 primitive,
+                 parallel,
+                 vector,
+                 BitStringRandomMonad
 
 Source-Repository head
   Type:       git
diff --git a/Crypto/RandomMonad.hs b/Crypto/RandomMonad.hs
--- a/Crypto/RandomMonad.hs
+++ b/Crypto/RandomMonad.hs
@@ -120,8 +120,11 @@
 type RndIO a = RndT IO a
 type Rnd a = RndT Identity a
 
-replaceSeedM :: Monad m => RndState -> RndT m ()
-replaceSeedM s = RndT $ put s
+replaceSeedM :: Monad m => RndStatePrimitive -> RndT m ()
+replaceSeedM s = RndT $ state $ replaceSeedM s
+  where
+  replaceSeedM newState (RndStateListParallel _) = ((),RndStateListParallel newState)
+  replaceSeedM newState (RndStateListSequencial _) = ((),RndStateListSequencial newState)
 
 addSeedM :: Monad m => RndStatePrimitive -> RndT m ()
 addSeedM s = RndT $ state $ addSeedM s
diff --git a/Test/Tests.hs b/Test/Tests.hs
new file mode 100644
--- /dev/null
+++ b/Test/Tests.hs
@@ -0,0 +1,16 @@
+import Crypto.RandomMonad (runRndT, getRandomM, RndStateList(RndStateListSequencial, RndStateListParallel), getRandomByteStringM)
+
+import Control.Monad.ST (runST)
+import Test.QuickCheck
+import Data.BitString as BiS
+import Data.ByteString.Lazy.Char8 as LC8
+import System.Exit (exitWith, ExitCode(ExitSuccess, ExitFailure))
+
+prop_parallelEquals1 = do
+  let lists = [BiS.bitStringLazy $ LC8.pack $ Prelude.concat $ Prelude.repeat "Hej, jag loopar här",
+               BiS.bitStringLazy $ LC8.pack $ Prelude.concat $ Prelude.repeat "Hej, jag loopar också här"]
+      (first, _) = runST $ runRndT (RndStateListSequencial lists) $ getRandomByteStringM 9001
+      (second, _) = runST $ runRndT (RndStateListParallel lists) $ getRandomByteStringM 9001
+   in first == second
+
+main = exitWith $ if prop_parallelEquals1 then ExitSuccess else ExitFailure 1
