Ok, I tracked it down. I am wrapping a large C library with C++. I debugged it all the way through and it turns out that a c function that I call in the in a constructor of the base class is triggering a callback that does the dynamic_cast. I know that in the constructor you don't get polymorphic behaviour on virtual function calls. I guess that also means that type info is not yet available on the "this" pointer.