diff --git a/menuselect/menuselect.c b/menuselect/menuselect.c
index f6a7fb39b2d428845bb8513528c8a93a347a5ef7..da972d8b12a26c3c5c878592099e53ff29d9004e 100644
--- a/menuselect/menuselect.c
+++ b/menuselect/menuselect.c
@@ -386,6 +386,11 @@ static int process_xml_use_node(xmlNode *node, struct member *mem)
 	return process_xml_ref_node(node, mem, &mem->uses);
 }
 
+static int process_xml_member_data_node(xmlNode *node, struct member *mem)
+{
+	return 0;
+}
+
 static int process_xml_unknown_node(xmlNode *node, struct member *mem)
 {
 	fprintf(stderr, "Encountered unknown node: %s\n", node->name);
@@ -404,6 +409,7 @@ static const struct {
 	{ "depend",         process_xml_depend_node         },
 	{ "conflict",       process_xml_conflict_node       },
 	{ "use",            process_xml_use_node            },
+	{ "member_data",    process_xml_member_data_node    },
 };
 
 static node_handler lookup_node_handler(xmlNode *node)
diff --git a/menuselect/menuselect.h b/menuselect/menuselect.h
index 328ac9a0ab8c72b9dc5316d0e1e0731e3423a7cd..bf2bf4c4fee08ab713cbc95bed3272aba78a9c79 100644
--- a/menuselect/menuselect.h
+++ b/menuselect/menuselect.h
@@ -70,6 +70,8 @@ struct member {
 	const char *touch_on_change;
 	const char *support_level;
 	const char *replacement;
+	/*! member_data is just an opaque, member-specific string */
+	const char *member_data;
 	/*! This module is currently selected */
 	unsigned int enabled:1;
 	/*! This module was enabled when the config was loaded */