Index: ejabberd-2.0.5/src/mod_roster.erl =================================================================== --- ejabberd-2.0.5.orig/src/mod_roster.erl +++ ejabberd-2.0.5/src/mod_roster.erl @@ -515,7 +515,7 @@ in_state_change(to, in, subscribed) in_state_change(to, in, unsubscribe) -> {to, none}; in_state_change(to, in, unsubscribed) -> {none, in}; in_state_change(from, none, subscribe) -> none; -in_state_change(from, none, subscribed) -> none; +in_state_change(from, none, subscribed) -> {both, none}; in_state_change(from, none, unsubscribe) -> {none, none}; in_state_change(from, none, unsubscribed) -> none; in_state_change(from, out, subscribe) -> none; @@ -544,7 +544,7 @@ out_state_change(none, both, subscribed) out_state_change(none, both, unsubscribe) -> {none, in}; out_state_change(none, both, unsubscribed) -> {none, out}; out_state_change(to, none, subscribe) -> none; -out_state_change(to, none, subscribed) -> none; +out_state_change(to, none, subscribed) -> {both, none}; out_state_change(to, none, unsubscribe) -> {none, none}; out_state_change(to, none, unsubscribed) -> none; out_state_change(to, in, subscribe) -> none;