diff --git a/src/common/ctcp.c b/src/common/ctcp.c index 37f8419e..cb7276b7 100644 --- a/src/common/ctcp.c +++ b/src/common/ctcp.c @@ -126,7 +126,21 @@ ctcp_handle (session *sess, char *to, char *nick, char *ip, if (ctcp_check (sess, nick, word, word_eol, word[4] + ctcp_offset)) goto generic; - inbound_action (sess, to, nick, ip, msg + 7, FALSE, tags_data->identified, tags_data); + { + gboolean fromme = !serv->p_cmp (nick, serv->nick); + + if (fromme && !is_channel (serv, to)) + { + session *target = find_dialog (serv, to); + + if (target) + sess = target; + else if (serv->front_session) + sess = serv->front_session; + } + + inbound_action (sess, to, nick, ip, msg + 7, fromme, tags_data->identified, tags_data); + } return; } diff --git a/src/common/proto-irc.c b/src/common/proto-irc.c index f9814ab6..d2491a15 100644 --- a/src/common/proto-irc.c +++ b/src/common/proto-irc.c @@ -1368,7 +1368,7 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[], { if (ignore_check (word[1], IG_PRIV)) return; - if (serv->have_echo_message && !serv->p_cmp (nick, serv->nick)) + if (!serv->p_cmp (nick, serv->nick)) { session *target_sess = find_dialog (serv, to);