diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
index 6701302..53ff4b0 100644
--- a/vncviewer/vncviewer.cxx
+++ b/vncviewer/vncviewer.cxx
@@ -493,27 +493,32 @@
     if (alertOnFatalError)
       fl_alert("%s", e.str());
   }
-  
-  int i = 1;
-  if (!Fl::args(argc, argv, i) || i < argc)
-    for (; i < argc; i++) {
-      if (Configuration::setParam(argv[i]))
-        continue;
 
-      if (argv[i][0] == '-') {
-        if (i+1 < argc) {
-          if (Configuration::setParam(&argv[i][1], argv[i+1])) {
-            i++;
-            continue;
-          }
+  for (int i = 1; i < argc;) {
+    if (Fl::arg(argc, argv, i))
+      continue;
+
+    if (Configuration::setParam(argv[i])) {
+      i++;
+      continue;
+    }
+
+    if (argv[i][0] == '-') {
+      if (i+1 < argc) {
+        if (Configuration::setParam(&argv[i][1], argv[i+1])) {
+          i += 2;
+          continue;
         }
-        usage(argv[0]);
       }
 
-      strncpy(vncServerName, argv[i], VNCSERVERNAMELEN);
-      vncServerName[VNCSERVERNAMELEN - 1] = '\0';
+      usage(argv[0]);
     }
 
+    strncpy(vncServerName, argv[i], VNCSERVERNAMELEN);
+    vncServerName[VNCSERVERNAMELEN - 1] = '\0';
+    i++;
+  }
+
   mkvnchomedir();
 
 #if !defined(WIN32) && !defined(__APPLE__)
