function AbstractWarn() local lcSetAssert, lcAbsCaller lcAbsCaller = Program(program(-1)-1) if not JustExt(m.lcAbsCaller)==JustExt(Program(program(-1)-2)) lcSetAssert = set("Assert") set Assert on assert .f. Message m.lcAbsCaller + " should be overwritten !" set Assert &lcSetAssert endifshould be able to fix it for most usages (Again just typed in not tested ...Update - and on second reading might need some error checking to make sure there *is* a programmatic level -2 /Update). The case of a method *just* calling the dodefault() could be argued to be something for the code police or a valid use case suppressing the assert<g>. For me having explicit abstract levels has no merit *in vfp* unless there is some automatic tool working on extracting documentation on such levels or other on site "programming rules". But now we are deep in "opinion space".