If you change the iterator from:
Code:
LinkedListIterator<ClientListEntry*> iterator(clientlist);
to
Code:
LinkedListIterator<ClientListEntry*> iterator(clientlist, BACKWARD);
it might allow the new login and kick off the older ones. I've not tested this with the code above, but I have tested a backward iterator, and Reset() starts it at the end, and Advance() moves it towards the start.