Don't ban players when using a mix-mapped challenge with two checkpoints on the same spot. (not that this means it's supported, but at least it will hopefully not ban for no apparent reason people in good faith).
ChatEnableManualRouting() can now take a additional boolean to enable a mode where only the player's message go through the routing callback but not the server ones. (This is to both avoid useless work, and to work around the issue that it is anyway impossible to make the server messages work correctly given that the callback doesn't give the recipient of the message).
When the config was <p2p_cache_size>0</p2p_cache_size> (or in some other cases where the cache was too small), the server crashed at start time.
ChooseNextChallengeList() and ChooseNextChallenge() now set IsListModified == true in the ChallengeListModified() callback.
Added more checks on invalid packets or invalid challenges to avoid crashes.
New connection protocol with a signature check on the player login before allowing the connection, (if the client supports it).
New configuration to only allow recent client to connect: add <minimum_client_build>2009-10-08</minimum_client_build> to the <system_config> section to only allow client supporting the new connection protocol.