Index: src/server/sv_client.c =================================================================== --- src/server/sv_client.c (revision 1043) +++ src/server/sv_client.c (working copy) @@ -78,7 +78,10 @@ } // send the challengeResponse - challenge->pingTime = svs.time; + if ( !challenge->inuse ) { + challenge->pingTime = svs.time; + challenge->inuse = qtrue; + } NET_OutOfBandPrint( NS_SERVER, from, "challengeResponse %i", challenge->challenge ); } @@ -341,6 +344,7 @@ for (i = 0 ; i < MAX_CHALLENGES ; i++, challenge++) { if ( NET_CompareAdr( drop->netchan.remoteAddress, challenge->adr ) ) { challenge->connected = qfalse; + challenge->inuse = qfalse; break; } } Index: src/server/server.h =================================================================== --- src/server/server.h (revision 1043) +++ src/server/server.h (working copy) @@ -189,6 +189,7 @@ int pingTime; // time the challenge response was sent to client int firstTime; // time the adr was first used, for authorize timeout checks qboolean connected; + qboolean inuse; } challenge_t;