diff --git a/src/ranap/RANAP_SDU-FormatInformationParameters.c b/src/ranap/RANAP_SDU-FormatInformationParameters.c
index 61713f0..ae9f605 100644
--- a/src/ranap/RANAP_SDU-FormatInformationParameters.c
+++ b/src/ranap/RANAP_SDU-FormatInformationParameters.c
@@ -11,87 +11,11 @@
 	{ APC_CONSTRAINED,	 6,  6,  1l,  64l }	/* (SIZE(1..64)) */,
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_MemberE_2[] = {
-	{ ATF_POINTER, 3, offsetof(struct MemberE, subflowSDU_Size),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANAP_SubflowSDU_Size,
-		0,	/* Defer constraints checking to the member type */
-		0,	/* No PER visible constraints */
-		0,
-		"subflowSDU-Size"
-		},
-	{ ATF_POINTER, 2, offsetof(struct MemberE, rAB_SubflowCombinationBitRate),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANAP_RAB_SubflowCombinationBitRate,
-		0,	/* Defer constraints checking to the member type */
-		0,	/* No PER visible constraints */
-		0,
-		"rAB-SubflowCombinationBitRate"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MemberE, iE_Extensions),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANAP_IE_Extensions,
-		0,	/* Defer constraints checking to the member type */
-		0,	/* No PER visible constraints */
-		0,
-		"iE-Extensions"
-		},
-};
-static const int asn_MAP_MemberE_oms_2[] = { 0, 1, 2 };
-static const ber_tlv_tag_t asn_DEF_MemberE_tags_2[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MemberE_tag2el_2[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subflowSDU-Size */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAB-SubflowCombinationBitRate */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_MemberE_specs_2 = {
-	sizeof(struct MemberE),
-	offsetof(struct MemberE, _asn_ctx),
-	asn_MAP_MemberE_tag2el_2,
-	3,	/* Count of tags in the map */
-	asn_MAP_MemberE_oms_2,	/* Optional members */
-	3, 0,	/* Root/Additions */
-	2,	/* Start extensions */
-	4	/* Stop extensions */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_MemberE_2 = {
-	"SEQUENCE",
-	"SEQUENCE",
-	SEQUENCE_free,
-	SEQUENCE_print,
-	SEQUENCE_constraint,
-	SEQUENCE_decode_ber,
-	SEQUENCE_encode_der,
-	SEQUENCE_decode_xer,
-	SEQUENCE_encode_xer,
-	SEQUENCE_decode_uper,
-	SEQUENCE_encode_uper,
-	SEQUENCE_decode_aper,
-	SEQUENCE_encode_aper,
-	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_MemberE_tags_2,
-	sizeof(asn_DEF_MemberE_tags_2)
-		/sizeof(asn_DEF_MemberE_tags_2[0]), /* 1 */
-	asn_DEF_MemberE_tags_2,	/* Same as above */
-	sizeof(asn_DEF_MemberE_tags_2)
-		/sizeof(asn_DEF_MemberE_tags_2[0]), /* 1 */
-	0,	/* No PER visible constraints */
-	asn_MBR_MemberE_2,
-	3,	/* Elements count */
-	&asn_SPC_MemberE_specs_2	/* Additional specs */
-};
-
 static asn_TYPE_member_t asn_MBR_RANAP_SDU_FormatInformationParameters_1[] = {
 	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		-1 /* Ambiguous tag (CHOICE?) */,
 		0,
-		&asn_DEF_MemberE_2,
+		&asn_DEF_RANAP_SDU_FormatInformationParameterItem,
 		0,	/* Defer constraints checking to the member type */
 		0,	/* No PER visible constraints */
 		0,
