The problem is that the code tracks users by IP address instead of username. If the code were rewritten to track users by username, it would solve the duplication problem. Guests would still have to be counted by looking at IP addresses because you wouldn't know who they were yet.
Right now the active users list is totally inaccurate because:
- Users who use AOL or other organizations who have multiple proxy servers with appear more than once.
- Multiple users behind a firewall will appear as one user because they have the same IP address.
The only way to solve the problem is a total rewrite of the active users module based on usernames instead of IP addresses. Luckily most of the code for the IP addresses could still be used for Guests, but new code would have to be written for the rest of it.