diff --git a/src/Wrecker/Runner.hs b/src/Wrecker/Runner.hs
--- a/src/Wrecker/Runner.hs
+++ b/src/Wrecker/Runner.hs
@@ -86,19 +86,12 @@
     recorderRef <- newIORef $ recorder env
     let takeRecorder = atomicModifyIORef' recorderRef $ \x -> (Recorder.split x, x)
         actionThread =
-            void $
             BoundedThreadGroup.forkIO threadLimit $ do
-                rec <- takeRecorder
-                handle
-                    (\e -> do
-                         case fromException e of
-                             Just (Recorder.HandledError he) -> void $ logWarn logger $ show he
-                             Nothing -> do
-                                 logWarn logger $ show e
-                                 Recorder.addEvent (recorder env) Recorder.RuntimeError
-                                 Recorder.addEvent (recorder env) Recorder.End) $ do
-                    action (env {recorder = rec})
-                    Recorder.addEvent rec Recorder.End
+                bracket takeRecorder (\rec -> Recorder.addEvent rec Recorder.End) $ \rec -> do
+                    result <- try $ action (env {recorder = rec})
+                    case result of
+                        Right _ -> return ()
+                        Left e -> recordException e
     case runStyle of
         RunCount count -> replicateM_ (count * concurrency) actionThread
         RunTimed time -> void $ timeout (time * 1000000) $ forever actionThread
@@ -106,6 +99,14 @@
     case mtimeout of
         Nothing -> void $ logError logger $ "Timed out waiting for all " ++ "threads to complete"
         Just () -> return ()
+  where
+    recordException e =
+        case fromException e of
+            Just (Recorder.HandledError he) -> do
+                void $ logWarn logger $ show he
+            _ -> do
+                logWarn logger $ show e
+                Recorder.addEvent (recorder env) Recorder.RuntimeError
 
 ------------------------------------------------------------------------------
 ---   Generic Run Function
diff --git a/wrecker.cabal b/wrecker.cabal
--- a/wrecker.cabal
+++ b/wrecker.cabal
@@ -1,5 +1,5 @@
 name:                wrecker
-version:             1.2.1.0
+version:             1.2.2.0
 synopsis:            An HTTP Performance Benchmarker
 description:
  'wrecker' is a library and executable for creating HTTP benchmarks. It is designed for
