def addNode(self, n):

        if not n.nick:
            return

        lnick = n.nick.lower()

        if lnick in self.nickmap:
            raise NickError("collision")

        so = self.main.getStateObserver()
        if so:
            # Might raise NickError
            so.event_AddNick(n)
            so.event_UpdateInfo(n)

        self.nickmap[lnick] = n