Pardon the rather knee-jerk reply (can't spend too much time in the forums)

I wonder whether what you're trying to do *really* decouples your code. Have you considered biting the bullet and just replacing the third-part control?

edit: fixed type-O