diff --git a/lib/server/sse_handler.dart b/lib/server/sse_handler.dart
index 7a5ac0e..9c1f57f 100644
--- a/lib/server/sse_handler.dart
+++ b/lib/server/sse_handler.dart
@@ -96,7 +96,7 @@
   }
 
   shelf.Response _createSseConnection(shelf.Request req, String path) {
-    if (_isClosed) return null;
+    if (_isClosed) return shelf.Response.notFound('');
     req.hijack((channel) async {
       var sink = utf8.encoder.startChunkedConversion(channel.sink);
       sink.add(_sseHeaders(req.headers['origin']));
@@ -115,7 +115,7 @@
 
       _connectionController.add(connection);
     });
-    return null;
+    return shelf.Response.notFound('');
   }
 
   String _getOriginalPath(shelf.Request req) => req.requestedUri.path;
diff --git a/test/sse_test.dart b/test/sse_test.dart
index c21345e..63c4b8e 100644
--- a/test/sse_test.dart
+++ b/test/sse_test.dart
@@ -88,7 +88,7 @@
     expect(handler.numberOfClients, 0);
   });
 
-  test('Cancelling the listener closes the conneciton', () async {
+  test('Cancelling the listener closes the connection', () async {
     expect(handler.numberOfClients, 0);
     await webdriver.get('http://localhost:${server.port}');
     var connection = await handler.connections.next;
@@ -112,6 +112,21 @@
     expect(handler.numberOfClients, 0);
   });
 
+  test('Closing the handler prevents new connections', () async {
+    expect(handler.numberOfClients, 0);
+    await webdriver.get('http://localhost:${server.port}');
+    var connection = await handler.connections.next;
+    expect(handler.numberOfClients, 1);
+
+    handler.close();
+    // Should complete since the connection is closed.
+    await connection.stream.toList();
+    assert(handler.numberOfClients == 0);
+
+    await webdriver.get('http://localhost:${server.port}');
+    expect(await handler.connections.hasNext, isFalse);
+  });
+
   test('Disconnects when navigating away', () async {
     await webdriver.get('http://localhost:${server.port}');
     expect(handler.numberOfClients, 1);
