diff --git a/src/event/ServerSocket.cxx b/src/event/ServerSocket.cxx
index 69e62f897..552efb0a3 100644
--- a/src/event/ServerSocket.cxx
+++ b/src/event/ServerSocket.cxx
@@ -159,7 +159,7 @@ OneServerSocket::Accept()
 	StaticSocketAddress peer_address;
 	size_t peer_address_length = sizeof(peer_address);
 	int peer_fd =
-		accept_cloexec_nonblock(Get(), peer_address,
+		accept_cloexec_nonblock(Get(), peer_address.GetAddress(),
 					&peer_address_length);
 	if (peer_fd < 0) {
 		const SocketErrorMessage msg;
@@ -306,7 +306,7 @@ ServerSocket::AddFD(int fd, Error &error)
 
 	StaticSocketAddress address;
 	socklen_t address_length = sizeof(address);
-	if (getsockname(fd, address,
+	if (getsockname(fd, address.GetAddress(),
 			&address_length) < 0) {
 		SetSocketError(error);
 		error.AddPrefix("Failed to get socket address: ");
diff --git a/src/net/StaticSocketAddress.hxx b/src/net/StaticSocketAddress.hxx
index 2d92d36b5..0a780f6f6 100644
--- a/src/net/StaticSocketAddress.hxx
+++ b/src/net/StaticSocketAddress.hxx
@@ -56,11 +56,11 @@ public:
 				     size);
 	}
 
-	operator struct sockaddr *() {
+	struct sockaddr *GetAddress() {
 		return reinterpret_cast<struct sockaddr *>(&address);
 	}
 
-	operator const struct sockaddr *() const {
+	const struct sockaddr *GetAddress() const {
 		return reinterpret_cast<const struct sockaddr *>(&address);
 	}