diff --git a/snap-server.cabal b/snap-server.cabal
--- a/snap-server.cabal
+++ b/snap-server.cabal
@@ -1,5 +1,5 @@
 name:           snap-server
-version:        0.2.13.1
+version:        0.2.13.2
 synopsis:       A fast, iteratee-based, epoll-enabled web server for the Snap Framework
 description:
   This is the first developer prerelease of the Snap framework.  Snap is a
@@ -122,7 +122,7 @@
     murmur-hash >= 0.1 && < 0.2,
     network == 2.2.1.*,
     old-locale,
-    snap-core == 0.2.13,
+    snap-core == 0.2.14,
     template-haskell,
     time,
     transformers,
diff --git a/test/suite/Snap/Internal/Http/Server/Tests.hs b/test/suite/Snap/Internal/Http/Server/Tests.hs
--- a/test/suite/Snap/Internal/Http/Server/Tests.hs
+++ b/test/suite/Snap/Internal/Http/Server/Tests.hs
@@ -7,7 +7,11 @@
   ( tests ) where
 
 import             Control.Concurrent
-import             Control.Exception (try, throwIO, bracket, SomeException)
+import             Control.Exception ( try
+                                     , throwIO
+                                     , bracket
+                                     , finally
+                                     , SomeException )
 import             Control.Monad
 import "monads-fd" Control.Monad.Trans
 import qualified   Data.ByteString.Char8 as S
@@ -578,9 +582,13 @@
     ref <- newIORef ""
     let (iter,onSendFile) = mkIter ref
 
-    runHTTP "localhost" "127.0.0.1" 80 "127.0.0.1" 58384
-            Nothing Nothing enumBody iter onSendFile (return ()) f
+    done <- newEmptyMVar
+    forkIO (runHTTP "localhost" "127.0.0.1" 80 "127.0.0.1" 58384
+                Nothing Nothing enumBody iter onSendFile (return ()) f
+            `finally` putMVar done ())
 
+    takeMVar done
+
     -- this is a pretty lame way of checking whether the output was chunked,
     -- but "whatever"
     output <- liftM lower $ readIORef ref
@@ -618,18 +626,22 @@
 
     let (iter,onSendFile) = mkIter ref
 
-    runHTTP "localhost"
-            "127.0.0.1"
-            80
-            "127.0.0.1"
-            58384
-            Nothing
-            Nothing
-            enumBody
-            iter
-            onSendFile
-            (return ())
-            echoServer2
+    done <- newEmptyMVar
+
+    forkIO (runHTTP "localhost"
+                    "127.0.0.1"
+                    80
+                    "127.0.0.1"
+                    58384
+                    Nothing
+                    Nothing
+                    enumBody
+                    iter
+                    onSendFile
+                    (return ())
+                    echoServer2 `finally` putMVar done ())
+
+    takeMVar done
 
     s <- readIORef ref
 
