diff --git a/src/vty/command.c b/src/vty/command.c
index 9d02d69..2242e76 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -380,6 +380,7 @@
 static vector cmd_make_descvec(const char *string, const char *descstr)
 {
 	int multiple = 0;
+	int optional_brace = 0;
 	const char *sp;
 	char *token;
 	int len;
@@ -401,6 +402,12 @@
 		while (isspace((int)*cp) && *cp != '\0')
 			cp++;
 
+		/* Explicitly detect optional multi-choice braces like [(one|two)]. */
+		if (cp[0] == '[' && cp[1] == '(') {
+			optional_brace = 1;
+			cp++;
+		}
+
 		if (*cp == '(') {
 			multiple = 1;
 			cp++;
@@ -408,6 +415,9 @@
 		if (*cp == ')') {
 			multiple = 0;
 			cp++;
+			if (*cp == ']')
+				cp++;
+			optional_brace = 0;
 		}
 		if (*cp == '|') {
 			OSMO_ASSERT(multiple);
@@ -434,9 +444,17 @@
 
 		len = cp - sp;
 
-		token = _talloc_zero(tall_vty_cmd_ctx, len + 1, "cmd_make_descvec");
-		memcpy(token, sp, len);
-		*(token + len) = '\0';
+		token = _talloc_zero(tall_vty_cmd_ctx, len + (optional_brace? 2 : 0) + 1, "cmd_make_descvec");
+		if (optional_brace) {
+			/* Place each individual multi-choice token in its own square braces */
+			token[0] = '[';
+			memcpy(token + 1, sp, len);
+			token[1 + len] = ']';
+			token[2 + len] = '\0';
+		} else {
+			memcpy(token, sp, len);
+			*(token + len) = '\0';
+		}
 
 		desc = talloc_zero(tall_vty_cmd_ctx, struct desc);
 		desc->cmd = token;
diff --git a/tests/vty/vty_transcript_test.c b/tests/vty/vty_transcript_test.c
index 50131ea..7ffe713 100644
--- a/tests/vty/vty_transcript_test.c
+++ b/tests/vty/vty_transcript_test.c
@@ -170,10 +170,19 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(multi2, multi2_cmd,
+      "multi2 [(one|two|three)]",
+      "multi2 test command\n" "1\n2\n3\n")
+{
+	vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE);
+	return CMD_SUCCESS;
+}
+
 static void init_vty_cmds()
 {
 	install_element_ve(&multi0_cmd);
 	install_element_ve(&multi1_cmd);
+	install_element_ve(&multi2_cmd);
 }
 
 int main(int argc, char **argv)
diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty
index 514a5ed..57920a8 100644
--- a/tests/vty/vty_transcript_test.vty
+++ b/tests/vty/vty_transcript_test.vty
@@ -2,6 +2,7 @@
 ...
   multi0 (one|two|three)
   multi1 ([one]|[two]|[three])
+  multi2 [(one|two|three)]
 
 vty_transcript_test> multi0 ?
   one    1
@@ -51,3 +52,17 @@
 
 vty_transcript_test> multi1 [one]
 % Unknown command.
+
+vty_transcript_test> multi2 ?
+  [one]    1
+  [two]    2
+  [three]  3
+
+vty_transcript_test> multi2 one
+ok argc=1 one
+
+vty_transcript_test> multi2 two
+ok argc=1 two
+
+vty_transcript_test> multi2
+ok argc=0
