/** Uninit the application. */
  public synchronized void uninit() {
    Enumeration<Server> en = _servers.keys();
    while (en.hasMoreElements()) {
      Server s = (Server) en.nextElement();
      s.leave();
    }

    if (_ident != null) _ident.stop();
    _interface.removeIRCInterfaceListener(this);

    if (_frame != null) _frame.removeWindowListener(this);
    _frame = null;

    while (_plugins.size() > 0) {
      unloadPlugin((Plugin) _plugins.elementAt(_plugins.size() - 1));
    }
    _pluginsTable = new Hashtable<String, Plugin>();

    if (_container != null) _container.removeAll();

    EventDispatcher.clearCache();
  }