Interesting idea. It seems to rely on the sub-classes not using DESTROY themselves, correct? I wonder if DESTROY is the right hook... Could you use a CHECK block to run the checks on sub-classes, perhaps? I imagine you could write code to iterate through all defined packages looking for packages which have missing abstract overrides. If not CHECK, perhaps END.