regenerated
diff --git a/tests/140-component-relation-OK.asn1.-P b/tests/140-component-relation-OK.asn1.-P
index 8d700ba..ea127a1 100644
--- a/tests/140-component-relation-OK.asn1.-P
+++ b/tests/140-component-relation-OK.asn1.-P
@@ -26,6 +26,20 @@
 
 extern asn_TYPE_descriptor_t asn_DEF_Frame;
 
+/*** <<< IOC-TABLES [Frame] >>> ***/
+
+static const long asn_VAL_basicMessage_0 = 1;
+static const long asn_VAL_2_0 = 2;
+static const asn_ioc_cell_t asn_IOS_FrameTypes_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_basicMessage_0 },
+	{ "&Type", aioc__type, &asn_DEF_PrimitiveMessage },
+	{ "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_2_0 },
+	{ "&Type", aioc__type, &asn_DEF_ComplexMessage }
+};
+static asn_ioc_set_t asn_IOS_FrameTypes_1[] = {
+	2, 2, asn_IOS_FrameTypes_1_rows
+};
+
 /*** <<< CODE [Frame] >>> ***/
 
 static int
@@ -47,6 +61,25 @@
 	return td->check_constraints(td, sptr, ctfailcb, app_key);
 }
 
+static asn_TYPE_descriptor_t *
+select_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_ioc_set_t *itable = asn_IOS_FrameTypes_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &Type */
+	size_t row;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Frame, ident));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    asn_ioc_cell_s *constraining_cell = itable->rows[row * itable->columns_count + constraining_column];
+	    asn_ioc_cell_s *type_cell = itable->rows[row * itable->columns_count + for_column];
+	    if(constraining_cell->type_descriptor->struct_compare(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        return type_cell->type_descriptor;
+	    }
+	}
+	
+	return NULL;
+}
+
 static int
 memb_value_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
@@ -69,22 +102,12 @@
 
 /*** <<< STAT-DEFS [Frame] >>> ***/
 
-static const long asn_VAL_basicMessage_0 = 1;
-static const long asn_VAL_2_0 = 2;
-static const asn_ioc_cell_t asn_IOS_FrameTypes_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_basicMessage_0 },
-	{ "&Type", aioc__type, &asn_DEF_PrimitiveMessage },
-	{ "&id", aioc__value, &asn_DEF_NativeInteger, &asn_VAL_2_0 },
-	{ "&Type", aioc__type, &asn_DEF_ComplexMessage }
-};
-static asn_ioc_set_t asn_IOS_FrameTypes_1[] = {
-	2, 2, asn_IOS_FrameTypes_1_rows
-};
 static asn_TYPE_member_t asn_MBR_Frame_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct Frame, ident),
 		.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		.tag_mode = 0,
 		.type = &asn_DEF_NativeInteger,
+		.type_selector = 0,
 		.memb_constraints = memb_ident_constraint_1,
 		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */
@@ -95,6 +118,7 @@
 		.tag = -1 /* Ambiguous tag (ANY?) */,
 		.tag_mode = 0,
 		.type = &asn_DEF_ANY,
+		.type_selector = select_value_type,
 		.memb_constraints = memb_value_constraint_1,
 		.oer_constraints = 0,	/* OER is not compiled, use -gen-OER */
 		.per_constraints = 0,	/* PER is not compiled, use -gen-PER */