diff --git a/scgi.cabal b/scgi.cabal
--- a/scgi.cabal
+++ b/scgi.cabal
@@ -1,5 +1,5 @@
 Name:                scgi
-Version:             0.2.1
+Version:             0.3
 Stability:           provisional
 Description:
   This library lets you write SCGI programs. This package reuses the
@@ -15,7 +15,7 @@
 build-type:          Simple
 
 library
-  build-depends:     base >=3 && <4, bytestring, cgi, network
+  build-depends:     base >= 4, bytestring, cgi, network
   exposed-modules:   Network.SCGI
   ghc-options:       -fwarn-unused-binds -fwarn-unused-imports -fwarn-unused-matches
   hs-source-dirs:    src
diff --git a/src/Network/SCGI.hs b/src/Network/SCGI.hs
--- a/src/Network/SCGI.hs
+++ b/src/Network/SCGI.hs
@@ -9,7 +9,7 @@
   , module Network.CGI
   ) where
 
-import qualified Control.Exception as E (bracket, catch, finally)
+import qualified Control.Exception as E (SomeException, bracket, catch, finally)
 import Control.Monad.Fix    (fix)
 import Control.Concurrent
 import Data.ByteString.Lazy.Char8 (ByteString)
@@ -26,7 +26,7 @@
     (handle, _, _) <- accept socket
     E.catch
         (doSCGI f handle)
-        (\e -> hPutStrLn stderr $ "scgi: "++show e)
+        (\e -> hPutStrLn stderr $ "scgi: "++show (e::E.SomeException))
     loop socket
 
 runOnceSCGI        :: PortID -> CGI CGIResult -> IO ()
@@ -56,7 +56,7 @@
                         (doSCGI f handle)
                         (signalQSem qsem)
                 )
-                (\e -> hPutStrLn stderr $ "scgi: "++show e)
+                (\e -> hPutStrLn stderr $ "scgi: "++show (e::E.SomeException))
         loop socket
 
 withHandle :: Handle -> (Handle -> IO ()) -> IO ()
