private void quitChan(String user_name, CommandArgsIterator args_it)
            throws IOException
    {
        if (args_it.hasNext()) {
            String chan_arg = args_it.next();
            if (!args_it.hasNext() && chan_arg.length() >= 2
                    && chan_arg.charAt(0) == '#') {
                String chan_name = chan_arg.substring(1);
                boolean not_joined;
                synchronized (this._server.getChans()) {
                    synchronized (this._chans) {
                        Chan chan = this._chans.get(chan_name);
                        if (chan != null) {
                            chan.quitChan(user_name, this);
                            not_joined = false;
                        } else
                            not_joined = true;
                    }
                }
                
                if (!not_joined) {
                    this.traceEvent("Quitte le salon #" + chan_name);
                    this.ack();
                } else
                    this.writeCommand(Errors.ChanNotJoined);
            } else 
                this.syntaxError();
        } else
            this.syntaxError();
    }