diff --git a/tests/43-recursion-OK.asn1.-P b/tests/43-recursion-OK.asn1.-P
index 0c56aa8..8eb67a7 100644
--- a/tests/43-recursion-OK.asn1.-P
+++ b/tests/43-recursion-OK.asn1.-P
@@ -84,7 +84,7 @@
 	&asn_SPC_t_member1_2_specs	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_t_member2_3[] = {
+static asn_TYPE_member_t asn_MBR_t_member2_4[] = {
 	{ ATF_NOFLAGS, 0, 0,
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
@@ -93,16 +93,16 @@
 		.name = ""
 		},
 };
-static ber_tlv_tag_t asn_DEF_t_member2_3_tags[] = {
+static ber_tlv_tag_t asn_DEF_t_member2_4_tags[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static asn_SET_OF_specifics_t asn_SPC_t_member2_3_specs = {
+static asn_SET_OF_specifics_t asn_SPC_t_member2_4_specs = {
 	sizeof(struct t_member2),
 	offsetof(struct t_member2, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_t_member2_3 = {
+asn_TYPE_descriptor_t asn_DEF_t_member2_4 = {
 	"t-member2",
 	"t-member2",
 	SEQUENCE_OF_free,
@@ -113,15 +113,15 @@
 	SEQUENCE_OF_decode_xer,
 	SEQUENCE_OF_encode_xer,
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_t_member2_3_tags,
-	sizeof(asn_DEF_t_member2_3_tags)
-		/sizeof(asn_DEF_t_member2_3_tags[0]), /* 1 */
-	asn_DEF_t_member2_3_tags,	/* Same as above */
-	sizeof(asn_DEF_t_member2_3_tags)
-		/sizeof(asn_DEF_t_member2_3_tags[0]), /* 1 */
-	asn_MBR_t_member2_3,
+	asn_DEF_t_member2_4_tags,
+	sizeof(asn_DEF_t_member2_4_tags)
+		/sizeof(asn_DEF_t_member2_4_tags[0]), /* 1 */
+	asn_DEF_t_member2_4_tags,	/* Same as above */
+	sizeof(asn_DEF_t_member2_4_tags)
+		/sizeof(asn_DEF_t_member2_4_tags[0]), /* 1 */
+	asn_MBR_t_member2_4,
 	1,	/* Single element */
-	&asn_SPC_t_member2_3_specs	/* Additional specs */
+	&asn_SPC_t_member2_4_specs	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_Test_structure_1_1[] = {
@@ -135,7 +135,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct Test_structure_1, t_member2),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		.tag_mode = 0,
-		.type = (void *)&asn_DEF_t_member2_3,
+		.type = (void *)&asn_DEF_t_member2_4,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
 		.name = "t-member2"
 		},
@@ -246,7 +246,7 @@
 
 /*** <<< STAT-DEFS [Choice-1] >>> ***/
 
-static asn_TYPE_member_t asn_MBR_or_2[] = {
+static asn_TYPE_member_t asn_MBR_or_3[] = {
 	{ ATF_NOFLAGS, 0, 0,
 		.tag = -1 /* Ambiguous tag (CHOICE?) */,
 		.tag_mode = 0,
@@ -255,17 +255,17 @@
 		.name = ""
 		},
 };
-static ber_tlv_tag_t asn_DEF_or_2_tags[] = {
+static ber_tlv_tag_t asn_DEF_or_3_tags[] = {
 	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 	(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
 };
-static asn_SET_OF_specifics_t asn_SPC_or_2_specs = {
+static asn_SET_OF_specifics_t asn_SPC_or_3_specs = {
 	sizeof(struct or),
 	offsetof(struct or, _asn_ctx),
 	1,	/* XER encoding is XMLValueList */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_or_2 = {
+asn_TYPE_descriptor_t asn_DEF_or_3 = {
 	"or",
 	"or",
 	SET_OF_free,
@@ -276,15 +276,15 @@
 	SET_OF_decode_xer,
 	SET_OF_encode_xer,
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_or_2_tags,
-	sizeof(asn_DEF_or_2_tags)
-		/sizeof(asn_DEF_or_2_tags[0]) - 1, /* 1 */
-	asn_DEF_or_2_tags,	/* Same as above */
-	sizeof(asn_DEF_or_2_tags)
-		/sizeof(asn_DEF_or_2_tags[0]), /* 2 */
-	asn_MBR_or_2,
+	asn_DEF_or_3_tags,
+	sizeof(asn_DEF_or_3_tags)
+		/sizeof(asn_DEF_or_3_tags[0]) - 1, /* 1 */
+	asn_DEF_or_3_tags,	/* Same as above */
+	sizeof(asn_DEF_or_3_tags)
+		/sizeof(asn_DEF_or_3_tags[0]), /* 2 */
+	asn_MBR_or_3,
 	1,	/* Single element */
-	&asn_SPC_or_2_specs	/* Additional specs */
+	&asn_SPC_or_3_specs	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_Choice_1_1[] = {
@@ -298,7 +298,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct Choice_1, choice.or),
 		.tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		.tag_mode = -1,	/* IMPLICIT tag at current level */
-		.type = (void *)&asn_DEF_or_2,
+		.type = (void *)&asn_DEF_or_3,
 		.memb_constraints = 0,	/* Defer constraints checking to the member type */
 		.name = "or"
 		},
