--- ukbd.c.orig 2007-07-26 09:47:07.548403000 +0400 +++ ukbd.c 2007-07-26 10:21:11.000000000 +0400 @@ -659,6 +659,15 @@ */ KBD_PROBE_DONE(kbd); + err = usbreq_set_protocol(sc->sc_udev, sc->sc_iface_index, 0); + + DPRINTF(5, "protocol set\n"); + + if (err) { + device_printf(dev, "set protocol failed\n"); + goto detach; + } + /* ignore if SETIDLE fails, hence it is not crucial */ err = usbreq_set_idle(sc->sc_udev, sc->sc_iface_index, 0, 0);