public static Host getHost ()
    throws IOException
    {
	synchronized (RemoteHostFactory.class) {
	    if (self != null)
		return self;

	    // FIXME: handle _both_ RMI/JRMP and RMI/IIOP ...

	    try {
		self = (Host) Naming.lookup ("usb.core.Host");
	    } catch (ConnectException e) {

		// no (default) registry found
	    } catch (NotBoundException e) {
		// no proxy was registered
	    }
	}
	return self;
    }