The way I look at it, the default descriminant is a way of telling the compiler you may want to assign a record with a different discriminant value to a record you have declared. That way enough memory is allocated to hold the largest variant. If you don't give a default descriminant, that tells the compiler you're going to explicitly select the variant for each record you declare, so it can size each variant in the smallest allocation - with the restriction that you cannot assign a different variant after the declaration. I hope this helps, Steve (The Duck) "Bj�rn Persson" wrote in message news:JoO0c.84716$dP1.234457@newsc.telia.net... Thank you, Steve and Robert! I'm afraid I still don't understand why Parameter_Wrapper would be necessary, since Steve's solution seems to work equally well - at least in Gnat 3.3.2. On the other hand I don't understand why a default value for the discriminant would make such a difference - but it does. -- Bj�rn Persson jor ers @sv ge. b n_p son eri nu