Index: /trunk/ppStack/src/ppStackArguments.c
===================================================================
--- /trunk/ppStack/src/ppStackArguments.c	(revision 23371)
+++ /trunk/ppStack/src/ppStackArguments.c	(revision 23372)
@@ -20,5 +20,5 @@
     fprintf(stderr, "\nPan-STARRS Image combination\n\n");
     fprintf(stderr,
-            "Usage: %s INPUTS.mdc OUTPUT_ROOT [-sources STAMPS.cmf | -stamps STAMPS.dat]\n"
+            "Usage: %s -input INPUTS.mdc OUTPUT_ROOT [-sources STAMPS.cmf | -stamps STAMPS.dat]\n"
             "where INPUTS.mdc contains various METADATAs, each with:\n"
             "\tIMAGE(STR):     Image filename\n"
@@ -137,5 +137,4 @@
         psArgumentRemove(argNum, &argc, argv);
     }
-
 
     psMetadata *arguments = config->arguments; // Command-line arguments
@@ -187,20 +186,34 @@
     psMetadataAddBool(arguments, PS_LIST_TAIL, "-visual", 0, "visualisation", false);
 
-    if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 3) {
+    if (argc == 1) {
         usage(argv[0], arguments, config);
     }
+
+    if ((argNum = psArgumentGet(argc, argv, "-input"))) {
+        psArgumentRemove(argNum, &argc, argv);
+        if (argNum >= argc) {
+            usage(argv[0], arguments, config);
+        }
+
+        unsigned int numBad = 0;                     // Number of bad lines
+        psMetadata *inputs = psMetadataConfigRead(NULL, &numBad, argv[argNum], false); // Input file info
+        if (!inputs || numBad > 0) {
+            psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to cleanly read MDC file with inputs.");
+            return false;
+        }
+        psMetadataAddMetadata(arguments, PS_LIST_TAIL, "INPUTS", 0, "Metadata with input details", inputs);
+        psFree(inputs);
+
+        psArgumentRemove(argNum, &argc, argv);
+    }
+
+    if (!psArgumentParse(arguments, &argc, argv) || argc != 2) {
+        usage(argv[0], arguments, config);
+    }
+
+    psMetadataAddStr(arguments, PS_LIST_TAIL, "OUTPUT", 0, "Root name of the output image list", argv[1]);
 
     const char *stampsName = psMetadataLookupStr(NULL, arguments, "-stamps"); // Name of stamps file
     psMetadataAddStr(arguments, PS_LIST_TAIL, "STAMPS", 0, "Stamps file", stampsName);
-
-    unsigned int numBad = 0;                     // Number of bad lines
-    psMetadata *inputs = psMetadataConfigRead(NULL, &numBad, argv[1], false); // Information about inputs
-    if (!inputs || numBad > 0) {
-        psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to cleanly read MDC file with inputs.");
-        return false;
-    }
-    psMetadataAddMetadata(arguments, PS_LIST_TAIL, "INPUTS", 0, "Metadata with input details", inputs);
-    psFree(inputs);
-    psMetadataAddStr(arguments, PS_LIST_TAIL, "OUTPUT", 0, "Root name of the output image list", argv[2]);
 
     valueArgStr(arguments, "-stats", "STATS", arguments);
