diff --git a/src/event/ServerSocket.cxx b/src/event/ServerSocket.cxx
index 10d7aef2f..dbec53d17 100644
--- a/src/event/ServerSocket.cxx
+++ b/src/event/ServerSocket.cxx
@@ -20,6 +20,7 @@
 #include "config.h"
 #include "ServerSocket.hxx"
 #include "net/IPv4Address.hxx"
+#include "net/IPv6Address.hxx"
 #include "net/StaticSocketAddress.hxx"
 #include "net/AllocatedSocketAddress.hxx"
 #include "net/SocketAddress.hxx"
@@ -316,12 +317,7 @@ ServerSocket::AddPortIPv4(unsigned port) noexcept
 inline void
 ServerSocket::AddPortIPv6(unsigned port) noexcept
 {
-	struct sockaddr_in6 sin;
-	memset(&sin, 0, sizeof(sin));
-	sin.sin6_port = htons(port);
-	sin.sin6_family = AF_INET6;
-
-	AddAddress({(const sockaddr *)&sin, sizeof(sin)});
+	AddAddress(IPv6Address(port));
 }
 
 /**