diff --git a/tools/vsh.c b/tools/vsh.c
index 148c920a50..f76076b164 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -2824,7 +2824,9 @@ vshReadlineParse(const char *text, int state)
         if (!cmd) {
             list = vshReadlineCommandGenerator(text);
         } else {
-            if (!opt || (opt->type != VSH_OT_DATA && opt->type != VSH_OT_STRING))
+            if (!opt || (opt->type != VSH_OT_DATA &&
+                         opt->type != VSH_OT_STRING &&
+                         opt->type != VSH_OT_ARGV))
                 list = vshReadlineOptionsGenerator(text, cmd, partial);
 
             if (opt && opt->completer) {