bug with final and inherit

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=721

Reported by Thomas Bopp, Uni-GH Paderborn astra@upb.de

I have 4 files:
a.pike: void foo();
b.pike: void foo();
c.pike:
inherit "a";
inherit "b";
final void foo() {
   write("bar\n");
}

d.pike: inherit "c";

main() {
object o = new("d");
o->foo();
}

When I put all classes in one file it works, but when each class is in a separate file it says "illegal to redefine nomask function foo".