public synchronized boolean removeIRCEventListener(IRCEventListener l) {
		if (l == null)
			return false;
		int index = -1;
		for (int i = 0; i < listeners.length; i++)
			if (listeners[i].equals(l)) {
				index = i;
				break;
			}
		if (index == -1)
			return false;
		listeners[index] = null;
		int len = listeners.length - 1;
		IRCEventListener[] newListeners = new IRCEventListener[len];
		for (int i = 0, j = 0; i < len; j++)
			if (listeners[j] != null)
				newListeners[i++] = listeners[j];
		listeners = newListeners;
		return true;
	}