Index: code/qcommon/common.c =================================================================== --- code/qcommon/common.c (revision 1499) +++ code/qcommon/common.c (working copy) @@ -2509,6 +2509,7 @@ */ void Com_Init( char *commandLine ) { char *s; + int qport; Com_Printf( "%s %s %s\n", Q3_VERSION, PLATFORM_STRING, __DATE__ ); @@ -2627,7 +2628,12 @@ com_version = Cvar_Get ("version", s, CVAR_ROM | CVAR_SERVERINFO ); Sys_Init(); - Netchan_Init( Com_Milliseconds() & 0xffff ); // pick a port value that should be nice and random + + // Pick a port value that should be nice and random. + // As machines get faster continuing to use Com_Milliseconds + // results in a smaller and smaller range of qport values. + Com_RandomBytes( (byte*)&qport, sizeof(int) ); + Netchan_Init( qport & 0xffff ); VM_Init(); SV_Init(); Index: code/sys/sys_main.c =================================================================== --- code/sys/sys_main.c (revision 1499) +++ code/sys/sys_main.c (working copy) @@ -534,6 +534,11 @@ Sys_PlatformInit( ); + // Set the initial time base. + // If not called here com_frameTime will always be zero. + // com_frameTime should be pseudo random. + Sys_Milliseconds(); + Sys_ParseArgs( argc, argv ); Sys_SetBinaryPath( Sys_Dirname( argv[ 0 ] ) ); Sys_SetDefaultInstallPath( DEFAULT_BASEDIR );