diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.1.12.1
+
+* Fix up `acceptSafe` as [mentioned by Kazu](https://github.com/yesodweb/wai/issues/361#issuecomment-102204803)
+
 ## 0.1.12
 
 * `appRawSocket`
diff --git a/Data/Streaming/Network.hs b/Data/Streaming/Network.hs
--- a/Data/Streaming/Network.hs
+++ b/Data/Streaming/Network.hs
@@ -106,6 +106,7 @@
 import Data.Array.Unboxed ((!), UArray, listArray)
 import System.IO.Unsafe (unsafePerformIO)
 import System.Random (randomRIO)
+import System.IO.Error (isFullErrorType, ioeGetErrorType)
 #if WINDOWS
 import Control.Concurrent.MVar (putMVar, takeMVar, newEmptyMVar)
 #endif
@@ -447,9 +448,12 @@
 #endif
   where
     loop =
-        NS.accept socket `E.catch` \(_ :: IOException) -> do
-            threadDelay 1000000
-            loop
+        NS.accept socket `E.catch` \e ->
+            if isFullErrorType (ioeGetErrorType e)
+                then do
+                    threadDelay 1000000
+                    loop
+                else E.throwIO e
 
 message :: ByteString -> NS.SockAddr -> Message
 message = Message
diff --git a/streaming-commons.cabal b/streaming-commons.cabal
--- a/streaming-commons.cabal
+++ b/streaming-commons.cabal
@@ -1,5 +1,5 @@
 name:                streaming-commons
-version:             0.1.12
+version:             0.1.12.1
 synopsis:            Common lower-level functions needed by various streaming data libraries
 description:         Provides low-dependency functionality commonly needed by various streaming data libraries, such as conduit and pipes.
 homepage:            https://github.com/fpco/streaming-commons
