That's really an Ada (OO) question. > procedure Show_All > (Dialog : access Base_Dialog_Record'Class); You're defining a non dispatching procedure, you want a dispatching one: procedure Show_All (Dialog : access Base_Dialog_Record); Arno