diff --git a/ircd/channel.c b/ircd/channel.c index 73a16427..24e73f85 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -1511,12 +1511,14 @@ static int set_mode(aClient *cptr, aClient *sptr, aChannel *chptr, if (*ip) { - if ((*ip == MODE_ANONYMOUS || *ip == MODE_REOP) - && whatt == MODE_ADD && !IsServer(sptr)) - sendto_one(cptr, - replies[ERR_UNKNOWNMODE], - ME, BadTo(sptr->name), *curr, - chptr->chname); + if (*ip == MODE_REOP + && whatt == MODE_ADD + && MyConnect(sptr) + && !IsServer(sptr)) + sendto_one(cptr, + replies[ERR_UNKNOWNMODE], + ME, BadTo(sptr->name), *curr, + chptr->chname); else { /*