diff --git a/src/common/plugstack.c b/src/common/plugstack.c
index 6d306f38e176a25e9d154a5ae7bd8affb9c97dbe..c3ca324d31ccf5b95b7634bfaa1bf70dd0c67bff 100644
--- a/src/common/plugstack.c
+++ b/src/common/plugstack.c
@@ -1528,6 +1528,13 @@ spank_option_getopt (spank_t sp, struct spank_option *opt, char **argp)
 	                         (ListFindF) _opt_by_name,
 	                         opt->name);
 	if (spopt) {
+		/*
+		 *  Return failure if option is cached but hasn't been
+		 *   used on the command line or specified by user.
+		 */
+		if (!spopt->found)
+			return (ESPANK_ERROR);
+
 		if (opt->has_arg && argp)
 			*argp = spopt->optarg;
 		return (ESPANK_SUCCESS);