diff --git a/docs/versionhistory.rst b/docs/versionhistory.rst
index be84fb781..2f9b724da 100644
--- a/docs/versionhistory.rst
+++ b/docs/versionhistory.rst
@@ -9,6 +9,10 @@ This library adheres to `Semantic Versioning 2.0 `_.
across backends (asyncio returned immediately; Trio raised ``ValueError``) by
raising ``ValueError`` on all backends
(`#1306 `_; PR by @BetterAndBetterII)
+- Fixed ``create_tcp_listener()`` occasionally failing with a message like
+ ``Could not create 2 listeners with a consistent port`` when an ephemeral port is
+ requested and IPv6 is enabled and the dual-stack path is not available or a specific
+ local host name was given
**4.15.1**
diff --git a/src/anyio/_core/_sockets.py b/src/anyio/_core/_sockets.py
index 14ee6e41e..df670360b 100644
--- a/src/anyio/_core/_sockets.py
+++ b/src/anyio/_core/_sockets.py
@@ -393,7 +393,7 @@ def setup_raw_socket(
errors: list[OSError] = []
try:
- for _ in range(len(sockaddrs)):
+ for _ in range(10): # enough to absorb ephemeral port collisions
listeners: list[SocketListener] = []
bound_ephemeral_port = local_port
try: