This is my preferred method of fixing it as I don't think the lifetimes need to be tied so closely, though this requires review my someone to make sure my unregistering etc is correct and in the right place.
Apparently this fixes the problem for Fengguang, and the code looks cleaner too. Thanks,
Leaves the fixes or next question, since I suppose its not technically a regression, -next is probably fine, let me know if you'd l like them earlier.
Dave.