diff --git a/modules/m_topic.c b/modules/m_topic.c index 7e6206e4b..55be75ae9 100644 --- a/modules/m_topic.c +++ b/modules/m_topic.c @@ -114,7 +114,10 @@ m_topic(struct Client *client_p, struct Client *source_p, int parc, const char * return 0; } - if((chptr->mode.mode & MODE_TOPICLIMIT) == 0 || is_chanop(msptr)) + if(((chptr->mode.mode & MODE_TOPICLIMIT) == 0 || + is_chanop(msptr)) && + (!MyClient(source_p) || + can_send(chptr, source_p, msptr))) { char topic_info[USERHOST_REPLYLEN]; rb_sprintf(topic_info, "%s!%s@%s",