>But I think you found a bug. Ok, so maybe the first ilock/iunlock pair isn't needed? The controller can't see the task descriptors that have been chained on to the endpoint until the "tail" element of the endpoint descriptor is set, so any potential interrupts during the sequence won't affect anything.
rod