Shared groups behaving very strangely (help!)

Shared groups are behaving very strangely for me: a shared group will only appear in a user’s roster if that user is logged in while I configure the group to be shared in the admin panel. If the group was already shared (having been set either through the admin panel or by a custom GroupProvider) before the user logs in, the group is never included in the user’s roster.

Furthermore, if the user is logged in while the group is configured to be shared, and then logs out and in again, the group will no longer appear in his roster. It’s as though the roster update is only sent when the group is switched into shared mode, and at no other time.

Does anyone have any ideas what might be causing this strange behavior? I’m pretty sure shared groups aren’t supposed to work this way.

I am using Openfire 3.6.4 on a GNU/Linux machine with a Postgres 8.3.3 backend.

Thanks!