As you probably know, we use the mt32emu in ScummVM. We are currently using Munt 1.5.0, but we are in the progress of updating the Munt library to 2.0.0. For this, we use the new C++ interface you added in 2.0.0. This is the current state: https://github.com/scummvm/scummvm/pull/863 . We still use an internal copy of munt, rather than use it as a library. (Maybe we should revisit this decision.) We encountered a problem with the ReportHandler classes. There are two different classes with the name ReportHandler: one in Synth.h, and one in cpp_interface.h, and both are in the same namespace. These classes being different (and specifically having different vtables) leads to linking problems when compiling under my msys2/mingw-w64 environment, using gcc 6.2.0. When I compile ScummVM using the code from said pull request, applied with default configuration parameters and without passing any -O flags to either the compiler or the linker, linking fails with the following error message: ~~~ LINK scummvm.exe audio/softsynth/mt32/libmt32.a(Synth.o): duplicate section `.rdata$_ZTVN7MT32Emu13ReportHandlerE[_ZTVN7MT32Emu13ReportHandlerE]' has different size ~~~ (The mangled C++ symbol is the vtable for MT32Emu::ReportHandler) In various other environments, things build fine, apparently because the linker there doesn't care about the different vtables. Also, compiling with optimizations entirely removes the vtable for the ReportHandler from cpp_interface.h which also avoids the problem. Would it be possible to synchronize the two ReportHandler classes, or name them differently, or put them in different namespaces?