diff --git a/Network/Wai/Logger/Prefork/File.hs b/Network/Wai/Logger/Prefork/File.hs
--- a/Network/Wai/Logger/Prefork/File.hs
+++ b/Network/Wai/Logger/Prefork/File.hs
@@ -53,8 +53,8 @@
 
 reopen :: FileLogSpec -> HandleRef -> IO ()
 reopen spec (HandleRef ref) = do
-    hdl <- open spec
-    oldhdl <- atomicModifyIORef ref (\oh -> (hdl,oh))
+    oldhdl <- readIORef ref
+    open spec >>= writeIORef ref
     hClose oldhdl
 
 ----------------------------------------------------------------
diff --git a/wai-logger-prefork.cabal b/wai-logger-prefork.cabal
--- a/wai-logger-prefork.cabal
+++ b/wai-logger-prefork.cabal
@@ -1,5 +1,5 @@
 Name:                   wai-logger-prefork
-Version:                0.1.1
+Version:                0.1.2
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
