Sean, Is it ever allowed to call ib_destroy_cm_id() from a CM callback? For some reason I thought that this was OK from only the IDLE callback, but if I destroy from IDLE I get a hang on cm_id_priv->lock, I believe. Should the normal mode of operation in the case be to return an error from IDLE to ensure that cm_id gets cleaned-up? Thanks. -Libor