Somewhere in 4.5.2 of the LRM (I don't have my hardcopy with me and do not feel like counting the paragraphs): "Two access-to-subprogram values are equal if they are the result of the same evaluation of an Access attribute_reference, or if both are equal to the null value of the access type. [..] It is unspecified whether two access values that designate the same subprogram but are the result of distinct evaluations of Access attribute_references are equal or unequal." At Fri, 17 May 2002 16:23:29 -0700 C. Daniel Cooper said: "But that's where the risky Ada construct comes in: Ada95 does not guarantee comparisons of subprogram 'Access values. As explained in [RM 3.10.2(39)], [RM 4.5.2(13)], and other places, a compiler "implementation may consider two access-to-subprogram values to be unequal, even though they designate the same subprogram. This might be because one points directly to the subprogram, while the other points to a special prologue that performs an Elaboration_Check and then jumps to the subprogram." Thus, each 'Access attribute reference for a given subprogram is allowed to designate a distinct wrapper if needed, to support an indirect call." At 21 May 2002 16:24:43 -0500, Wesley Groleau queried: "To step back from the problem a little bit: What is the justification, if any, for making a comparison operation available, and then defining it as meaningless?" This does not solve anything, but would it be possible to determine whether the query results come from distinct evaluations of Access attribute_references?, so that the user could treat the comparison answers sceptically if the answers are not specificed by the Standard. This does not help C. Daniel Cooper in finding an intuitive approach for his colleagues. C.P.G.