Some stuff that might be of interest:
virtual void AddRef()=0;
virtual void Release()=0;
Commenting out these make it all work!
class cMyType : public cExtraBase, public cBaseType
{
Swapping position of cExtraBase and cBaseType (so that a pointer to BaseType has 0 memory offset), makes it all work.
I think there must be some memory problem and that when calling AddRef and Release, not the correct adress is used.
NOTE: I Saw that my first post contained code snipped (the last one) that was exactly the same as the first, and thus must have made the post extra confusion. Really sorry about that!