diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.2.7
+
+* Don't eat up an asynchronous exception.
+
 ## 3.2.6
 
 * Labeling the thread of SingleLogger.
diff --git a/System/Log/FastLogger.hs b/System/Log/FastLogger.hs
--- a/System/Log/FastLogger.hs
+++ b/System/Log/FastLogger.hs
@@ -47,8 +47,9 @@
 ) where
 
 import Control.Concurrent (MVar, newMVar, putMVar, tryTakeMVar)
-import Control.Exception (SomeException (..), bracket, handle)
+import Control.Exception (bracket)
 import System.EasyFile (getFileSize)
+import qualified System.IO.Error as E
 
 import System.Log.FastLogger.Date
 import System.Log.FastLogger.File
@@ -80,30 +81,35 @@
 data LogType' a where
     LogNone :: LogType' LogStr
         -- ^ No logging.
-    LogStdout :: BufSize
+    LogStdout
+        :: BufSize
         -> LogType' LogStr
         -- ^ Logging to stdout.
         --   'BufSize' is a buffer size
         --   for each capability.
-    LogStderr :: BufSize
+    LogStderr
+        :: BufSize
         -> LogType' LogStr
         -- ^ Logging to stderr.
         --   'BufSize' is a buffer size
         --   for each capability.
-    LogFileNoRotate :: FilePath
+    LogFileNoRotate
+        :: FilePath
         -> BufSize
         -> LogType' LogStr
         -- ^ Logging to a file.
         --   'BufSize' is a buffer size
         --   for each capability.
-    LogFile :: FileLogSpec
+    LogFile
+        :: FileLogSpec
         -> BufSize
         -> LogType' LogStr
         -- ^ Logging to a file.
         --   'BufSize' is a buffer size
         --   for each capability.
         --   File rotation is done on-demand.
-    LogFileTimedRotate :: TimedFileLogSpec
+    LogFileTimedRotate
+        :: TimedFileLogSpec
         -> BufSize
         -> LogType' LogStr
         -- ^ Logging to a file.
@@ -111,7 +117,8 @@
         --   for each capability.
         --   Rotation happens based on check specified
         --   in 'TimedFileLogSpec'.
-    LogCallback :: (v -> IO ())
+    LogCallback
+        :: (v -> IO ())
         -> IO ()
         -> LogType' v
         -- ^ Logging with a log and flush action.
@@ -261,11 +268,11 @@
                     writeIORef ref $ estimate (limit - siz)
     file = log_file spec
     limit = log_file_size spec
+    -- The log file is locked by GHC.
+    -- We need to get its file size by the way not using locks.
     getSize =
-        handle (\(SomeException _) -> return Nothing) $
-            -- The log file is locked by GHC.
-            -- We need to get its file size by the way not using locks.
-            Just . fromIntegral <$> getFileSize file
+        (Just . fromIntegral <$> getFileSize file) `E.catchIOError` \_ -> return Nothing
+
     -- 200 is an ad-hoc value for the length of log line.
     estimate x = fromInteger (x `div` 200)
 
diff --git a/fast-logger.cabal b/fast-logger.cabal
--- a/fast-logger.cabal
+++ b/fast-logger.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               fast-logger
-version:            3.2.6
+version:            3.2.7
 license:            BSD3
 license-file:       LICENSE
 maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
