diff --git a/core/corehttp/corehttp.go b/core/corehttp/corehttp.go
index c03b75f86dde890628377f1b9e3f84d814c425ce..ff9bac70440372ecbd5091bee77e890563a68a12 100644
--- a/core/corehttp/corehttp.go
+++ b/core/corehttp/corehttp.go
@@ -79,6 +79,10 @@ func listenAndServe(node *core.IpfsNode, addr ma.Multiaddr, handler http.Handler
 	// if node being closed before server exits, close server
 	case <-node.Closing():
 		log.Infof("server at %s terminating...", addr)
+
+		// make sure keep-alive connections do not keep the server running
+		server.InnerServer.SetKeepAlivesEnabled(false)
+
 		server.Shutdown <- true
 
 	outer: