I've just encountered this very strange problem. And wonder why it could happen.
The similar situation is described by someone on MSDN-site.
But nobody there brought a clear explanation of that yet.
This little article described how to deal with callbacks from unmanaged code.
I think I did everything properly so that the program works well. But it doesn't.
If necessary, I could share snippets of my code.