Index: /trunk/ppStack/src/ppStack.c
===================================================================
--- /trunk/ppStack/src/ppStack.c	(revision 18649)
+++ /trunk/ppStack/src/ppStack.c	(revision 18650)
@@ -26,5 +26,5 @@
     (void) psTraceSetLevel("ppStack", 5);
 
-    if (!ppStackArguments(argc, argv, config)) {
+    if (!ppStackArgumentsSetup(argc, argv, config)) {
         psErrorStackPrint(stderr, "Error reading arguments.\n");
         exitValue = PS_EXIT_CONFIG_ERROR;
@@ -40,4 +40,10 @@
     if (!ppStackCamera(config)) {
         psErrorStackPrint(stderr, "Error setting up input files.\n");
+        exitValue = PS_EXIT_CONFIG_ERROR;
+        goto die;
+    }
+
+    if (!ppStackArgumentsParse(config)) {
+        psErrorStackPrint(stderr, "Error reading arguments.\n");
         exitValue = PS_EXIT_CONFIG_ERROR;
         goto die;
Index: /trunk/ppStack/src/ppStack.h
===================================================================
--- /trunk/ppStack/src/ppStack.h	(revision 18649)
+++ /trunk/ppStack/src/ppStack.h	(revision 18650)
@@ -7,7 +7,11 @@
 #include <psmodules.h>
 
+// Setup command-line arguments
+bool ppStackArgumentsSetup(int argc, char *argv[], // Command-line arguments
+                           pmConfig *config  // Configuration
+    );
+
 // Parse command-line arguments
-bool ppStackArguments(int argc, char *argv[], // Command-line arguments
-                      pmConfig *config  // Configuration
+bool ppStackArgumentsParse(pmConfig *config  // Configuration
     );
 
Index: /trunk/ppStack/src/ppStackArguments.c
===================================================================
--- /trunk/ppStack/src/ppStackArguments.c	(revision 18649)
+++ /trunk/ppStack/src/ppStackArguments.c	(revision 18650)
@@ -40,5 +40,5 @@
 // Get a float-point value from the command-line or recipe, and add it to the arguments
 #define VALUE_ARG_RECIPE_FLOAT(ARGNAME, RECIPENAME, TYPE) { \
-    ps##TYPE value = psMetadataLookup##TYPE(NULL, arguments, ARGNAME); \
+    ps##TYPE value = psMetadataLookup##TYPE(NULL, config->arguments, ARGNAME); \
     if (isnan(value)) { \
         bool mdok; \
@@ -55,5 +55,5 @@
 // Get an integer value from the command-line or recipe, and add it to the arguments
 #define VALUE_ARG_RECIPE_INT(ARGNAME, RECIPENAME, TYPE, UNSET) { \
-    ps##TYPE value = psMetadataLookup##TYPE(NULL, arguments, ARGNAME); \
+    ps##TYPE value = psMetadataLookup##TYPE(NULL, config->arguments, ARGNAME); \
     if (value == UNSET) { \
         bool mdok; \
@@ -71,5 +71,5 @@
 #define VALUE_ARG_RECIPE_MASK(ARGNAME, RECIPENAME) { \
     bool mdok; \
-    const char *name = psMetadataLookupStr(&mdok, arguments, ARGNAME); \
+    const char *name = psMetadataLookupStr(&mdok, config->arguments, ARGNAME); \
     if (!mdok || !name || strlen(name) == 0) { \
         name = psMetadataLookupStr(NULL, recipe, RECIPENAME); \
@@ -86,5 +86,5 @@
 // Get a statistic name from the command-line or recipe, and add the enum to the arguments
 #define VALUE_ARG_RECIPE_STAT(ARGNAME, RECIPENAME) { \
-    const char *stat = psMetadataLookupStr(NULL, arguments, ARGNAME); \
+    const char *stat = psMetadataLookupStr(NULL, config->arguments, ARGNAME); \
     if (!stat) { \
         stat = psMetadataLookupStr(NULL, recipe, RECIPENAME); \
@@ -132,5 +132,5 @@
 }
 
-bool ppStackArguments(int argc, char *argv[], pmConfig *config)
+bool ppStackArgumentsSetup(int argc, char *argv[], pmConfig *config)
 {
     assert(config);
@@ -139,5 +139,5 @@
     pmConfigFileSetsMD(config->arguments, &argc, argv, "PPSTACK.SOURCES", "-sources", NULL);
 
-    psMetadata *arguments = psMetadataAlloc(); // Command-line arguments
+    psMetadata *arguments = config->arguments; // Command-line arguments
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-stamps", 0, "Stamps file with x,y,flux per line", NULL);
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-stats", 0, "Statistics file", NULL);
@@ -184,5 +184,5 @@
     if (!inputs || numBad > 0) {
         psError(PS_ERR_BAD_PARAMETER_VALUE, false, "Unable to cleanly read MDC file with inputs.");
-        goto ERROR;
+        return false;
     }
     psMetadataAddMetadata(config->arguments, PS_LIST_TAIL, "INPUTS", 0,
@@ -193,4 +193,13 @@
 
     valueArgStr(arguments, "-stats", "STATS", config->arguments);
+
+    return true;
+}
+
+bool ppStackArgumentsParse(pmConfig *config)
+{
+    assert(config);
+
+    psMetadata *arguments = config->arguments; // Command-line arguments
 
     psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // Recipe for ppSim
