protected function updateUser($nick, $ident, $host)
    {
        $collator   = $this->connection->getCollator();
        $normNick   = $collator->normalizeNick($nick);
        $key        = array_search($normNick, $this->nicks);
        if ($key === false) {
            $key = $this->sequence++;
            $this->nicks[$key] = $normNick;
        }

        if (isset($this->ial[$key]['TIMER'])) {
            $this->removeTimer($this->ial[$key]['TIMER']);
        }

        if (!isset($this->ial[$key]) || $this->ial[$key]['ident'] === null) {
            $this->ial[$key] = array(
                'nick'  => $nick,
                'ident' => $ident,
                'host'  => $host,
                'ison'  => true,
                'TIMER' => null,
            );
            return;
        }

        if ($ident !== null) {
            if ($this->ial[$key]['ident'] != $ident ||
                $this->ial[$key]['host'] != $host) {
                unset($this->nicks[$key]);
                unset($this->ial[$key]);
                $key = $this->sequence++;
                $this->nicks[$key] = $normNick;
            }

            $this->ial[$key] = array(
                'nick'  => $nick,
                'ident' => $ident,
                'host'  => $host,
                'ison'  => true,
                'TIMER' => null,
            );
        }
    }