As you are the maintainer for the presence modules I post these patches here:
1. At each subscribe within a dialog for the winfo event, the version attribute of the watcherinfo document is reset to 0. State should be kept within the same dialog, otherwise keeping track of watcher info state is more complicated in the client.
2. At each subsequent subscribe in a dialog for the winfo event, the server sends a full watcherinfo document. This is not needed and consumes bandwidth if the list of watchers is big. Instead, an empty partial update can be sent. This allows the subscriber to easily keep track of the watchers, as the version attribute indicates whether or not the subscriber has received all previous updates. If there is a problem, the subscriber can "fetch" the list of watchers.