You’re right, C::fn() is called when my example is ran alone. My problem actually was that I was dynamically loading this class (C) with ros:pluginlib (http://ros.org/wiki/pluginlib) so the multiple inheritance issue is probably coming from there. That’s a completly different issue I’ll have to look into.
solved C++: virtual functions with multiple derivations