Line 914 or thereabouts in ntserv/socket.c contains a select() call that is used to pause for up to a second waiting for client data. On Continuum we've been having processes consuming CPU time near this call ... like all of the available CPU time, generating high load average (15.4 today) and server side lag. Processes I have intercepted with gdb suggest that the pause is being called during version wait (main.c:161) and login wait (getname.c). Looking at the select() call, I see that status isn't being checked. It is quite possible that it is returning an error, and the surrounding code is checking for a packet and not finding any ready, and so looping back to wait again. Before I start adding to the code at this point; any ideas? -- James Cameron mailto:quozl at us.netrek.org http://quozl.netrek.org/