diff --git a/hack2-handler-mongrel2-http.cabal b/hack2-handler-mongrel2-http.cabal
--- a/hack2-handler-mongrel2-http.cabal
+++ b/hack2-handler-mongrel2-http.cabal
@@ -1,5 +1,5 @@
 Name:                 hack2-handler-mongrel2-http
-Version:              2011.6.25
+Version:              2011.10.31
 Build-type:           Simple
 Synopsis:             Hack2 Mongrel2 HTTP handler
 Description:          Hack2 Mongrel2 HTTP handler
@@ -16,14 +16,14 @@
 library
 
   build-depends: 
-                      base >= 4.0 && < 5
+                      base >= 4.0 && < 100
                     , network
                     , bytestring
                     , data-default >= 0.2
                     , hack2 >= 2011.6.20
                     , containers
                     , mtl
-                    , enumerator < 5
+                    , enumerator
                     , air
                     , zeromq-haskell
                     , directory
@@ -31,7 +31,7 @@
                     , text
                     , aeson
                     , blaze-textual
-                    , blaze-builder < 0.4
+                    , blaze-builder
                     , unix
                     , attoparsec
                     , stm
@@ -43,4 +43,5 @@
                     Hack2.Handler.Mongrel2.MessageParser
                     Hack2.Handler.Mongrel2.Response
                     Hack2.Handler.Mongrel2.Types
+                    Hack2.Handler.Mongrel2.Utils
                     
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -34,6 +34,11 @@
 
 now visit: <http://localhost:6767>, you should see a hello world page.
 
+Monkey fix the Dependency Hell
+------------------------------
+
+* add what you need into `hack2-handler-mongrel2-http.cabal` and `cabal install`, this will make sure the correct version of your libraries are pre-linked with mongrel2-http.
+
 Useful getting started resource
 -------------------------------
 
diff --git a/src/Hack2/Handler/Mongrel2/IO.hs b/src/Hack2/Handler/Mongrel2/IO.hs
--- a/src/Hack2/Handler/Mongrel2/IO.hs
+++ b/src/Hack2/Handler/Mongrel2/IO.hs
@@ -147,8 +147,8 @@
       --  
       
       _send_iteratee :: Iteratee ByteString IO ()
-      _send_iteratee = continue loop where
-        loop (Chunks xs) = do
+      _send_iteratee = continue consume where
+        consume (Chunks xs) = do
           
           _ids <- io - atomically - readTVar disconnected
           
@@ -164,7 +164,7 @@
           
               _send_iteratee
           
-        loop EOF = do
+        consume EOF = do
           yield () EOF
   
   -- let combined = B.append _responseHeader _responseBody
diff --git a/src/Hack2/Handler/Mongrel2/Utils.hs b/src/Hack2/Handler/Mongrel2/Utils.hs
new file mode 100644
--- /dev/null
+++ b/src/Hack2/Handler/Mongrel2/Utils.hs
@@ -0,0 +1,22 @@
+module Hack2.Handler.Mongrel2.Utils where
+
+import Control.Concurrent
+import System.IO.Unsafe (unsafePerformIO)
+import Prelude ()
+import Air.Env hiding (log)
+import System.IO
+
+sync_lock :: MVar ()
+sync_lock = unsafePerformIO - newMVar ()
+
+jailed :: IO a -> IO a
+jailed io = do
+  withMVar sync_lock (const io)
+
+log :: String -> IO ()
+-- log x = jailed - putStrLn x
+log x = return ()
+
+
+log_error :: String -> IO ()
+log_error x = jailed - hPutStr stderr x
