Line 31 of BaseURLSourceImpl: int port = request.getLocalPort();
Which calls same method in the underlying ServletRequest. getLocalPort javadoc: "Returns the Internet Protocol (IP) port number of the interface on which the request was received." getServerPort javadoc: "Returns the port number to which the request was sent. It is the value of the part after ":" in the <code>Host</code> header, if any, or the server port where the client connection was accepted on." I think that the second is the one that should be used and since this port number is paired with the host returned from getServerName() rather than getLocalName(), this seems like a bug to me. Admittedly one that will only rarely cause a problem, but it's just affected our site so it would be great if it could be fixed for 5.2.5 final release, unless anyone has a convincing argument why it should be this way, of course... I've raised TAP5-1372 for this issue.