diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,11 @@
+## 2.4.6
+
+* Ensuring that stdio is flushed. [#92](https://github.com/kazu-yamamoto/logger/pull/92)
+
+## 2.4.5
+
+* Bringing backward compatibility back.
+
 ## 2.4.4
 
 * New API: newFastLogger and ewTimedFastLogger.
diff --git a/System/Log/FastLogger.hs b/System/Log/FastLogger.hs
--- a/System/Log/FastLogger.hs
+++ b/System/Log/FastLogger.hs
@@ -195,14 +195,14 @@
 -- a tuple of logger and clean up action are returned.
 newFastLogger :: LogType -> IO (FastLogger, IO ())
 newFastLogger typ = case typ of
-    LogNone         -> return (const noOp, noOp)
-    LogStdout bsize -> newStdoutLoggerSet bsize >>= stdLoggerInit
-    LogStderr bsize -> newStderrLoggerSet bsize >>= stdLoggerInit
-    LogFileNoRotate fp bsize ->  newFileLoggerSet bsize fp >>= fileLoggerInit
-    LogFile fspec bsize -> rotateLoggerInit fspec bsize
-    LogCallback cb flush -> return (\ str -> cb str >> flush, noOp )
+    LogNone                  -> return (const noOp, noOp)
+    LogStdout bsize          -> newStdoutLoggerSet bsize >>= stdLoggerInit
+    LogStderr bsize          -> newStderrLoggerSet bsize >>= stdLoggerInit
+    LogFileNoRotate fp bsize -> newFileLoggerSet bsize fp >>= fileLoggerInit
+    LogFile fspec bsize      -> rotateLoggerInit fspec bsize
+    LogCallback cb flush     -> return (\str -> cb str >> flush, noOp)
   where
-    stdLoggerInit lgrset = return (pushLogStr lgrset, noOp)
+    stdLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)
     fileLoggerInit lgrset = return (pushLogStr lgrset, rmLoggerSet lgrset)
     rotateLoggerInit fspec bsize = do
         lgrset <- newFileLoggerSet bsize $ log_file fspec
@@ -225,14 +225,14 @@
                         -- "System.Log.FastLogger.Date" provide cached formatted time.
     -> LogType -> IO (TimedFastLogger, IO ())
 newTimedFastLogger tgetter typ = case typ of
-    LogNone -> return (const noOp, noOp)
-    LogStdout bsize -> newStdoutLoggerSet bsize >>= stdLoggerInit
-    LogStderr bsize -> newStderrLoggerSet bsize >>= stdLoggerInit
-    LogFileNoRotate fp bsize ->  newFileLoggerSet bsize fp >>= fileLoggerInit
-    LogFile fspec bsize -> rotateLoggerInit fspec bsize
-    LogCallback cb flush -> return (\ f -> tgetter >>= cb . f >> flush, noOp )
+    LogNone                  -> return (const noOp, noOp)
+    LogStdout bsize          -> newStdoutLoggerSet bsize >>= stdLoggerInit
+    LogStderr bsize          -> newStderrLoggerSet bsize >>= stdLoggerInit
+    LogFileNoRotate fp bsize -> newFileLoggerSet bsize fp >>= fileLoggerInit
+    LogFile fspec bsize      -> rotateLoggerInit fspec bsize
+    LogCallback cb flush     -> return (\f -> tgetter >>= cb . f >> flush, noOp)
   where
-    stdLoggerInit lgrset = return ( \f -> tgetter >>= pushLogStr lgrset . f, noOp)
+    stdLoggerInit lgrset = return ( \f -> tgetter >>= pushLogStr lgrset . f, rmLoggerSet lgrset)
     fileLoggerInit lgrset = return (\f -> tgetter >>= pushLogStr lgrset . f, rmLoggerSet lgrset)
     rotateLoggerInit fspec bsize = do
         lgrset <- newFileLoggerSet bsize $ log_file fspec
@@ -246,7 +246,7 @@
         return (logger, rmLoggerSet lgrset)
 
 -- | 'bracket' version of 'newTimeFastLogger'
-withTimedFastLogger :: (IO FormattedTime) -> LogType -> (TimedFastLogger -> IO a) -> IO a
+withTimedFastLogger :: IO FormattedTime -> LogType -> (TimedFastLogger -> IO a) -> IO a
 withTimedFastLogger tgetter typ log' = bracket (newTimedFastLogger tgetter typ) snd (log' . fst)
 
 ----------------------------------------------------------------
diff --git a/fast-logger.cabal b/fast-logger.cabal
--- a/fast-logger.cabal
+++ b/fast-logger.cabal
@@ -1,5 +1,5 @@
 Name:                   fast-logger
-Version:                2.4.5
+Version:                2.4.6
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
