diff -r 014a37d4232f -r 63821f4b1560 libgaim/protocols/oscar/oscar.c --- a/libgaim/protocols/oscar/oscar.c Fri Dec 22 06:59:05 2006 +0000 +++ b/libgaim/protocols/oscar/oscar.c Fri Dec 22 08:29:28 2006 +0000 @@ -1774,8 +1774,18 @@ g_free(message); } else - gaim_prpl_got_user_status(account, info->sn, status_id, NULL); - + { + GaimBuddy *b = gaim_find_buddy(account, info->sn); + GaimStatus *status; + const char *active_status_id; + + status = gaim_presence_get_active_status(gaim_buddy_get_presence(b)); + active_status_id = gaim_status_get_id(status); + + if (!active_status_id || strcmp(active_status_id, status_id)) + gaim_prpl_got_user_status(account, info->sn, status_id, NULL); + } + /* Login time stuff */ if (info->present & AIM_USERINFO_PRESENT_ONLINESINCE) signon = info->onlinesince;