void removeDev (DeviceImpl dev)
    {
        synchronized (devices) {
            DeviceImpl d = (DeviceImpl)getDevice (dev.getAddress ());
            int     i;
            //if (MacOSX.trace)
              // System.err.println ("notify removeDev " + dev.getPath());

            if (d == null || d != dev)
                return;
            i = d.getAddress () - 1;
            devices [i] = null;
            if (root == i) {
                root = -1;
                if (MacOSX.trace)
                    System.err.println ("bus root hub removed!");
                if (MacOSX.debug) {
                    for (i = 0; i < 127; i++) {
                        if (devices [i] != null)
                            System.err.println ("? addr " + (i + 1)
                                                + " present with no root ?");
                    }
                }
            }
        }
    }