If you follow these steps Spark will show someone is offline when they are actually online. I don’'t think it matters but we are using wildfire as the server.
Login with spark.
Login with jwchat.
Disconnect with jwchat (still connected with spark).
In other users contact lists you will now show as offline. It can take a while before they are shown as online again. I haven’‘t tested it much but if they message you they will not appear as online for a few minutes. If they don’'t message you then I think they will be offline for longer. On the jabber server, the user always remains shown online (which is correct).