diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,6 +1,11 @@
 # Revision history for http2-tls
 
 
+## 0.5.9
+
+* Return once the connections are done when told to stop.
+  [#29](https://github.com/kazu-yamamoto/http2-tls/pull/29)
+
 ## 0.5.8
 
 * Send close_notify after an HTTP/2 connection the server ends.
diff --git a/Network/HTTP2/TLS/Server/Settings.hs b/Network/HTTP2/TLS/Server/Settings.hs
--- a/Network/HTTP2/TLS/Server/Settings.hs
+++ b/Network/HTTP2/TLS/Server/Settings.hs
@@ -87,10 +87,10 @@
     -- 4
     , settingsInstallShutdownHandler :: IO () -> IO ()
     -- ^ An action to install a handler which stops the server.  The
-    --   first argument stops accepting; the connections being served are
-    --   not waited for.  Under the entry points which run HTTP\/2, it also
-    --   sends each connection GOAWAY, which closes it once the streams it
-    --   has taken are done.  The default does nothing.
+    --   first argument stops accepting, and the server returns once the
+    --   connections being served are done.  Under the entry points which
+    --   run HTTP\/2, it also sends each connection GOAWAY, which closes it
+    --   once the streams it has taken are done.  The default does nothing.
     --
     --   @since 0.5.7
     , settingsUnsafeClose :: Bool
diff --git a/http2-tls.cabal b/http2-tls.cabal
--- a/http2-tls.cabal
+++ b/http2-tls.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.10
 name:          http2-tls
-version:       0.5.8
+version:       0.5.9
 license:       BSD3
 license-file:  LICENSE
 maintainer:    Kazu Yamamoto <kazu@iij.ad.jp>
@@ -45,7 +45,7 @@
         http2 >=5.4.13 && <5.5,
         network >=3.2.12,
         network-control >=0.1 && <0.2,
-        network-run >=0.7.1 && <0.8,
+        network-run >=0.8 && <0.9,
         recv >=0.1.3 && <0.2,
         stm >=2.4,
         time-manager >=0.5 && <0.6,
