diff --git a/Control/Async.hs b/Control/Async.hs
--- a/Control/Async.hs
+++ b/Control/Async.hs
@@ -29,9 +29,9 @@
 data Async a = Child ThreadId (AsyncMVar a)
 
 forkAsync' :: IO a -> AsyncMVar a -> IO (Async a)
-forkAsync' f mv = fmap (\p -> Child p mv) (forkIO f')
+forkAsync' f mv = fmap (\p -> Child p mv) (block (forkIO f'))
   where
-    f' = block (try f >>= tryPutMVar mv >> return ())
+    f' = try f >>= tryPutMVar mv >> return ()
 
 forkAsync :: IO a -> IO (Async a)
 forkAsync f = newEmptyMVar >>= forkAsync' f
diff --git a/async.cabal b/async.cabal
--- a/async.cabal
+++ b/async.cabal
@@ -1,5 +1,5 @@
 Name:                   async
-Version:                1.0
+Version:                1.1
 Copyright:              (c) 2004-2010 Peter Simons
 License:                BSD3
 License-File:		LICENSE
