diff --git a/menuselect/menuselect.c b/menuselect/menuselect.c
index da972d8b12a26c3c5c878592099e53ff29d9004e..689cebf624661e946641276f606a6cbdbe816016 100644
--- a/menuselect/menuselect.c
+++ b/menuselect/menuselect.c
@@ -238,6 +238,10 @@ static enum support_level_values string_to_support_level(const char *support_lev
 		return SUPPORT_EXTERNAL;
 	}
 
+	if (!strcasecmp(support_level, "option")) {
+		return SUPPORT_OPTION;
+	}
+
 	return SUPPORT_UNSPECIFIED;
 }
 
@@ -253,6 +257,8 @@ static const char *support_level_to_string(enum support_level_values support_lev
 		return "Deprecated";
 	case SUPPORT_EXTERNAL:
 		return "External";
+	case SUPPORT_OPTION:
+		return "Module Options";
 	default:
 		return "Unspecified";
 	}
@@ -461,7 +467,7 @@ static int process_xml_member_node(xmlNode *node, struct category *cat)
 		process_process_xml_category_child_node(cur, mem);
 	}
 
-	if (!cat->positive_output) {
+	if (!cat->positive_output && strcasecmp(mem->support_level, "option")) {
 		mem->enabled = 1;
 		if (!mem->defaultenabled || strcasecmp(mem->defaultenabled, "no")) {
 			mem->was_enabled = 1;
diff --git a/menuselect/menuselect.h b/menuselect/menuselect.h
index bf2bf4c4fee08ab713cbc95bed3272aba78a9c79..78ae8eff6df9b0242a7808b9a7ad332b558c6fb9 100644
--- a/menuselect/menuselect.h
+++ b/menuselect/menuselect.h
@@ -108,7 +108,8 @@ enum support_level_values {
 	SUPPORT_DEPRECATED = 2,
 	SUPPORT_UNSPECIFIED = 3,
 	SUPPORT_EXTERNAL = 4,
-	SUPPORT_COUNT = 5, /* Keep this item at the end of the list. Tracks total number of support levels. */
+	SUPPORT_OPTION = 5,
+	SUPPORT_COUNT = 6, /* Keep this item at the end of the list. Tracks total number of support levels. */
 };
 
 AST_LIST_HEAD_NOLOCK(support_level_bucket, member);