Given type Active_Area_Access_Type is access all Active_Area_Type'Class; you need to say procedure Free_Active_Area is new Ada.Unchecked_Deallocation (Object => Active_Area_Type'Class, Name => Active_Area_Access_Type);