diff --git a/Data/Progress.hs b/Data/Progress.hs
--- a/Data/Progress.hs
+++ b/Data/Progress.hs
@@ -53,7 +53,8 @@
 	finally
 		(do
 		res <- f $ rec dat
-		return $! res)
+		evaluate res
+		return res)
 		(do
 		-- Record that the function is done so no more bars are printed.
 		modifyMVar_ count $ const $ return $ -1
@@ -102,7 +103,7 @@
 		-- Do a recursive call. The call gets a fresh recursion counter.
 		count' <- newMVar 0
 		res <- f (rec (depth + 1) count') x
-		return $! res
+		evaluate res
 
 		x <- readMVar count'
 		modifyMVar_ parms $ \tup@(mxDep, mxCount, total) -> do
@@ -129,7 +130,8 @@
 	finally
 		(do
 		res <- rec 0 count x
-		return $! res)
+		evaluate res
+		return res)
 		(do
 		modifyMVar_ parms $ const $ return (0, 0, -1)
 		putStrLn "]")
diff --git a/EstProgress.cabal b/EstProgress.cabal
--- a/EstProgress.cabal
+++ b/EstProgress.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                EstProgress
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Methods for estimating the progress of functions
 description:         Estimates the progress of a function as it executes, and displays a progress bar.
 homepage:            http://alkalisoftware.net
