Wes Groleau wrote: <<IF "the function and the local variables it declares" were at the same level (they are not) then the compiler would have to flag the declaration as an illegal re-declaration.>> Interpretations of a prefix as the name of an enclosing construct always take precedence over all other interpretations of the prefix. See RM95-4.1.3(4..5) or RM83-4.1.3(19) (which use different wording to say the same thing). -- Norman Cohen P.S.--I agree with Wes that such a conflict never arises in a program with well-chosen names, so this issue is not of general interest, and certainly not of interest to Ada novices.