diff --git a/cmdutils.c b/cmdutils.c
index f95778822eb206a10e1205e7eda50c8bd0f0291d..feeea694d818f0e76470b83d8c0abdff910d42b6 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -281,8 +281,8 @@ unknown_opt:
                     fprintf(stderr, "%s: failed to set value '%s' for option '%s'\n", argv[0], arg, opt);
                     exit(1);
                 }
-            } else {
-                po->u.func_arg(arg);
+            } else if (po->u.func_arg) {
+                    po->u.func_arg(arg);
             }
             if(po->flags & OPT_EXIT)
                 exit(0);
diff --git a/ffplay.c b/ffplay.c
index 11b307eacaf2410f1a740cb8ab6e6d6789e66b8a..07727b667a2cc672d6116c15d02f19cdec883335 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -3019,6 +3019,7 @@ static const OptionDef options[] = {
 #endif
     { "rdftspeed", OPT_INT | HAS_ARG| OPT_AUDIO | OPT_EXPERT, {(void*)&rdftspeed}, "rdft speed", "msecs" },
     { "default", OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT, {(void*)opt_default}, "generic catch all option", "" },
+    { "i", 0, {NULL}, "ffmpeg compatibility dummy option", ""},
     { NULL, },
 };