diff --git a/src/irclib.py b/src/irclib.py index 6fa2d1246..aa313f6ea 100644 --- a/src/irclib.py +++ b/src/irclib.py @@ -928,9 +928,14 @@ class Irc(IrcCommandDispatcher): # Let's reset nicks in case we had to use a weird one. self.alternateNicks = conf.supybot.nick.alternates()[:] umodes = conf.supybot.protocols.irc.umodes() + supported = self.supported.get('umodes') if umodes: - if umodes[0] not in '+-': - umodes = '+' + umodes + addSub = '+' + if umodes[0] in '+-': + (addSub, umodes) = (umodes[0], umodes[1:]) + if supported: + umodes = filter(lamda m: m in supported, umodes) + umodes = ''.join(addSub, umodes) log.info('Sending user modes to %s: %s', self.network, umodes) self.sendMsg(ircmsgs.mode(self.nick, umodes)) do377 = do422 = do376