diff --git a/Control/Concurrent/CHP/CSP.hs b/Control/Concurrent/CHP/CSP.hs
--- a/Control/Concurrent/CHP/CSP.hs
+++ b/Control/Concurrent/CHP/CSP.hs
@@ -63,7 +63,7 @@
          tr <- liftPoison $ liftTrace ask
          y <- liftIO $ bracketOnError (return ()) (const errorEnd) $ const
            $ runReaderT (pullOutStandard (wrapPoison $ body x)) tr
-         checkPoison y
+         checkPoison y `onPoisonRethrow` (liftIO errorEnd)
 
 wrapIndiv :: (Unique -> (Unique -> Integer) -> String -> [RecordedIndivEvent Unique])
           -> Unique -> (Unique -> (Integer, Event.RecordedEventType))
diff --git a/chp.cabal b/chp.cabal
--- a/chp.cabal
+++ b/chp.cabal
@@ -1,5 +1,5 @@
 Name:            chp
-Version:         2.1.0
+Version:         2.1.0.1
 Synopsis:        An implementation of concurrency ideas from Communicating Sequential Processes
 License:         BSD3
 License-file:    LICENSE
