{ %FAIL } program tw26193; {$mode delphi} type TA = class function Foo: Boolean; virtual; abstract; end; TB = class(TA) // Missing (!) error: There is no method in an ancestor class to be overridden: "Foo;" procedure Foo; override; end; procedure TB.Foo; begin end; begin end.