diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java
index f77e1428f2c..50338f94c1d 100644
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java
@@ -228,11 +228,11 @@ class Http2ClientImpl {
             connectionPoolLock.unlock();
         }
         do {
-            connections.values().forEach(this::close);
+            connections.values().removeIf(this::close);
         } while (!connections.isEmpty());
     }
 
-    private void close(Http2Connection h2c) {
+    private boolean close(Http2Connection h2c) {
         // close all streams
         try { h2c.closeAllStreams(); } catch (Throwable t) {}
         // send GOAWAY
@@ -241,6 +241,8 @@ class Http2ClientImpl {
         try { h2c.shutdown(STOPPED); } catch (Throwable t) {}
         // double check and close any new streams
         try { h2c.closeAllStreams(); } catch (Throwable t) {}
+        // Allows for use of removeIf in stop()
+        return true;
     }
 
     HttpClientImpl client() {