diff --git a/sysctl.c b/sysctl.c
index 872eceb..6d9bce9 100644
--- a/sysctl.c
+++ b/sysctl.c
@@ -700,10 +700,12 @@ int main(int argc, char *argv[])
 			   "Try `%s --help' for more information."),
 			   program_invocation_short_name);
 
-   if (WriteMode || index(*argv, '='))
-      ReturnCode = WriteSetting(*argv);
-   else
-      ReturnCode = ReadSetting(*argv);
+   for (; argv && *argv && **argv; argv++) {
+      if (WriteMode || index(*argv, '='))
+         ReturnCode = WriteSetting(*argv);
+      else
+         ReturnCode = ReadSetting(*argv);
+   }
 
    return ReturnCode;
 }
