diff --git a/src/scontrol/scontrol.c b/src/scontrol/scontrol.c
index 93a04223404eed4bafc1daa43d5f258cad4c11a6..e5379e2d460a9f590cccf04f0a20cb22ed5f4bf5 100644
--- a/src/scontrol/scontrol.c
+++ b/src/scontrol/scontrol.c
@@ -130,11 +130,10 @@ main (int argc, char *argv[])
 	while (1) {
 		if (!strncasecmp(argv[optind], "setdebugflags", 8))
 			break;	/* avoid parsing "-<flagname>" as option */
-		opt_char = getopt_long(argc, argv, "adhM:oQvV",
-				       long_options, &option_index);
-		switch (opt_char) {
-		case -1:
+		if (opt_char = getopt_long(argc, argv, "adhM:oQvV",
+					   long_options, &option_index) == -1)
 			break;
+		switch (opt_char) {
 		case (int)'?':
 			fprintf(stderr, "Try \"scontrol --help\" for "
 				"more information\n");