As Larry pointed out, this the off by one canbe fixed much more elegantly.
diff --git a/chmod.c b/chmod.c
index f22e5d0..b1d7512 100644
--- a/chmod.c
+++ b/chmod.c
@@ -66,7 +66,7 @@
 	}
 
 	/* Ok, ready to do the deed now */
-	while (optind++ < argc-1) {
+	while (++optind < argc) {
 		if (recursive_action (argv[optind], recursiveFlag, FALSE, FALSE, 
 					fileAction, fileAction, NULL) == FALSE) {
 			return EXIT_FAILURE;