The trick is to call OnlineStatusModule.LogOffUser(IUser user) when logging off, The problem is in the current release (3.2) there is bug in this functionality. However this is fixed in the upcoming service release that will be available very soon.
Thanks for the answer Tom, looking forward to the next release then!
I believe this is solved in the 3.2 SP 1 release, not that there is also a Hotfix for the 3.2 SP1. Head over to the download section and you will find them both!
I'm getting a collection of online users with the OnlineStatusModule.GetOnlineUsers method. Is there a way of setting a cache timeout for this? I'd like the collection to be updated when users login or logout, but currently this does not happen (unless I do a rebuild).