In my perverse exploration of meaningless corners of grammars... This is compliant RFC4506 XDR.... union foou switch(int a[10]) { case 1 : int b; case 2 : char c; default : string d<5>; }; It compiles with glibc 2.7 rpcgen and gcc. What does switch(int a[10]) mean? Dunno, ask the bloke that wrote a grammar that didn't forbid it. :-) John Carter Phone : (64)(3) 358 6639 Tait Electronics Fax : (64)(3) 359 4632 PO Box 1645 Christchurch Email : john.carter@xxxxxxxxxx New Zealand