Oh, I see, the problem is that the functions in the mixin would call the hidden functions instead of the new ones. I have also found the workaround: class DefaultTalkyDuck: Duck{ mixin DuckImpl; } class TalkyDuck: DefaultTalkyDuck{ override void quack(){writeln("quack! quack!");} } Sorry for the noise. -Timon