Index: /trunk/ppImage/src/ppFocusArguments.c
===================================================================
--- /trunk/ppImage/src/ppFocusArguments.c	(revision 7817)
+++ /trunk/ppImage/src/ppFocusArguments.c	(revision 7818)
@@ -14,5 +14,5 @@
 
     // load the site-wide configuration information
-    pmConfig *config = pmConfigRead(argc, argv);
+    pmConfig *config = pmConfigRead(&argc, argv);
     if (config == NULL) {
         psErrorStackPrint(stderr, "Can't find site configuration!\n");
@@ -30,8 +30,8 @@
 
     // recipe option: -usemask : override MASK setting in phase2.recipe
-    if ((N = psArgumentGet(config->argc, config->argv, "-usemask"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet(argc, argv, "-usemask"))) {
+        psArgumentRemove (N, &argc, argv);
         psMetadataAddBool (options, PS_LIST_TAIL, "MASK", PS_META_REPLACE, "", true);
-        psArgumentRemove (N, &config->argc, config->argv);
+        psArgumentRemove (N, &argc, argv);
     }
 
@@ -54,16 +54,16 @@
 
     // chip selection is used to limit chips to be processed
-    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-chip"))) {
+        psArgumentRemove (N, &argc, argv);
         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "",
-                          config->argv[N]);
-        psArgumentRemove (N, &config->argc, config->argv);
+                          argv[N]);
+        psArgumentRemove (N, &argc, argv);
     }
 
-    if (config->argc != 2) usage ();
+    if (argc != 2) usage ();
 
     // Add the input and output images (which remain on the command-line) to the arguments list
     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Name of the output image",
-                     config->argv[1]);
+                     argv[1]);
 
     return config;
Index: /trunk/ppImage/src/ppImageArguments.c
===================================================================
--- /trunk/ppImage/src/ppImageArguments.c	(revision 7817)
+++ /trunk/ppImage/src/ppImageArguments.c	(revision 7818)
@@ -14,5 +14,5 @@
 
     // load the site-wide configuration information
-    pmConfig *config = pmConfigRead(argc, argv);
+    pmConfig *config = pmConfigRead(&argc, argv);
     if (config == NULL) {
         psErrorStackPrint(stderr, "Can't find site configuration!\n");
@@ -30,8 +30,8 @@
 
     // recipe option: -usemask : override MASK setting in phase2.recipe
-    if ((N = psArgumentGet(config->argc, config->argv, "-usemask"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet(argc, argv, "-usemask"))) {
+        psArgumentRemove (N, &argc, argv);
         psMetadataAddBool (options, PS_LIST_TAIL, "MASK", PS_META_REPLACE, "", true);
-        psArgumentRemove (N, &config->argc, config->argv);
+        psArgumentRemove (N, &argc, argv);
     }
 
@@ -54,16 +54,16 @@
 
     // chip selection is used to limit chips to be processed
-    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-chip"))) {
+        psArgumentRemove (N, &argc, argv);
         psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "",
-                          config->argv[N]);
-        psArgumentRemove (N, &config->argc, config->argv);
+                          argv[N]);
+        psArgumentRemove (N, &argc, argv);
     }
 
-    if (config->argc != 2) usage ();
+    if (argc != 2) usage ();
 
     // Add the input and output images (which remain on the command-line) to the arguments list
     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Name of the output image",
-                     config->argv[1]);
+                     argv[1]);
 
     return config;
Index: /trunk/ppImage/src/ppTest.c
===================================================================
--- /trunk/ppImage/src/ppTest.c	(revision 7817)
+++ /trunk/ppImage/src/ppTest.c	(revision 7818)
@@ -11,5 +11,5 @@
 // ppImageConfig.c
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    pmConfig *config = pmConfigRead(argc, argv);
+    pmConfig *config = pmConfigRead(&argc, argv);
     if (! config) {
         psErrorStackPrint(stderr, "Can't find site configuration!\n");
@@ -27,7 +27,7 @@
     psMetadataAddS32(config->arguments, PS_LIST_TAIL, "-chip", 0, "Chip number to process (if positive)", -1);
 
-    if (! psArgumentParse(config->arguments, &config->argc, config->argv) || argc != 3) {
+    if (! psArgumentParse(config->arguments, &argc, argv) || argc != 3) {
         printf("\nPan-STARRS Phase 2 processing\n\n");
-        printf("Usage: %s INPUT.fits OUTPUT.fits\n\n", config->argv[0]);
+        printf("Usage: %s INPUT.fits OUTPUT.fits\n\n", argv[0]);
         psArgumentHelp(config->arguments);
         psFree(config->arguments);
@@ -36,8 +36,6 @@
 
     // Add the input and output images (which remain on the command-line) to the arguments list
-    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-input",  0, "Name of the input image",
-                     config->argv[1]);
-    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-output", 0, "Name of the output image",
-                     config->argv[2]);
+    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-input",  0, "Name of the input image", argv[1]);
+    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-output", 0, "Name of the output image", argv[2]);
 
     // Define database handle, if used
Index: /trunk/ppMerge/src/ppMergeConfig.c
===================================================================
--- /trunk/ppMerge/src/ppMergeConfig.c	(revision 7817)
+++ /trunk/ppMerge/src/ppMergeConfig.c	(revision 7818)
@@ -21,5 +21,5 @@
 pmConfig *ppMergeConfig(int argc, char **argv)
 {
-    pmConfig *config = pmConfigRead(argc, argv);
+    pmConfig *config = pmConfigRead(&argc, argv);
     // Load the site-wide configuration information
     if (! config) {
@@ -36,27 +36,27 @@
     psMetadataAddS32(config->arguments, PS_LIST_TAIL, "-onoff", 0, "Number of on/off pairs", 0);
 
-    if (config->argc == 1) {
-        usage(config->argv[0], config);
+    if (argc == 1) {
+        usage(argv[0], config);
     }
 
     // Parse the arguments
-    if (! psArgumentParse(config->arguments, &config->argc, config->argv) || config->argc < 3) {
-        usage(config->argv[0], config);
+    if (! psArgumentParse(config->arguments, &argc, argv) || argc < 3) {
+        usage(argv[0], config);
     }
 
     // Add the output image to the arguments list
     psMetadataAddStr(config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "Name of the output image",
-                     config->argv[1]);
+                     argv[1]);
 
     // Everything remaining must be input files
-    if (config->argc - 2 <= 1) {
+    if (argc - 2 <= 1) {
         psError(PS_ERR_IO, true, "No files to combine.\n");
         exit(EXIT_FAILURE);
     }
-    psArray *files = psArrayAlloc(config->argc - 2);
-    for (int i = 2; i < config->argc; i++) {
-        files->data[i - 2] = psStringCopy(config->argv[i]);
+    psArray *files = psArrayAlloc(argc - 2);
+    for (int i = 2; i < argc; i++) {
+        files->data[i - 2] = psStringCopy(argv[i]);
     }
-    files->n = config->argc - 2;
+    files->n = argc - 2;
     psMetadataAddPtr(config->arguments, PS_LIST_TAIL, "INPUT", PS_DATA_ARRAY,
                      "Array of inputs images", files);
Index: /trunk/psastro/src/psastroArguments.c
===================================================================
--- /trunk/psastro/src/psastroArguments.c	(revision 7817)
+++ /trunk/psastro/src/psastroArguments.c	(revision 7818)
@@ -29,5 +29,5 @@
 
     // load config data from default locations
-    pmConfig *config = pmConfigRead (config->argc, config->argv);
+    pmConfig *config = pmConfigRead(&argc, argv);
 
     // Storage for other command-line arguments
@@ -39,15 +39,15 @@
 
     // chip selection is used to limit chips to be processed
-    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(config->argv[N]));
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-chip"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(argv[N]));
+        psArgumentRemove (N, &argc, argv);
     }
 
     // mosastro mode also specifies output header file
-    if ((N = psArgumentGet (config->argc, config->argv, "-mosastro"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "MOSASTRO", PS_DATA_STRING, "", psStringCopy(config->argv[N]));
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-mosastro"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "MOSASTRO", PS_DATA_STRING, "", psStringCopy(argv[N]));
+        psArgumentRemove (N, &argc, argv);
     }
 
@@ -55,8 +55,8 @@
     if (!status) { usage ();}
 
-    if (config->argc != 2) usage ();
+    if (argc != 2) usage ();
 
     // output positions is fixed
-    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", config->argv[2]);
+    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", argv[2]);
 
     psTrace(__func__, 1, "Done with psastroArguments...\n");
Index: /trunk/psphot/src/psphotArguments.c
===================================================================
--- /trunk/psphot/src/psphotArguments.c	(revision 7817)
+++ /trunk/psphot/src/psphotArguments.c	(revision 7818)
@@ -13,5 +13,5 @@
 
     // load config data from default locations
-    pmConfig *config = pmConfigRead(argc, argv);
+    pmConfig *config = pmConfigRead(&argc, argv);
     if (config == NULL) {
         psError(PSPHOT_ERR_CONFIG, false, "Can't find site configuration");
@@ -29,83 +29,83 @@
 
     // run the test model (requires X,Y coordinate)
-    if ((N = psArgumentGet (config->argc, config->argv, "-modeltest"))) {
+    if ((N = psArgumentGet (argc, argv, "-modeltest"))) {
         psMetadataAddBool (options, PS_LIST_TAIL, "TEST_FIT",   0, "", true);
         psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_X", 0, "", atof(argv[N+1]));
         psMetadataAddF32  (options, PS_LIST_TAIL, "TEST_FIT_Y", 0, "", atof(argv[N+2]));
 
-        psArgumentRemove (N, &config->argc, config->argv);
-        psArgumentRemove (N, &config->argc, config->argv);
-        psArgumentRemove (N, &config->argc, config->argv);
+        psArgumentRemove (N, &argc, argv);
+        psArgumentRemove (N, &argc, argv);
+        psArgumentRemove (N, &argc, argv);
 
         // specify the modeltest model
-        if ((N = psArgumentGet (config->argc, config->argv, "-model"))) {
-            psArgumentRemove (N, &config->argc, config->argv);
-            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODEL", 0, "", config->argv[N]);
-            psArgumentRemove (N, &config->argc, config->argv);
+        if ((N = psArgumentGet (argc, argv, "-model"))) {
+            psArgumentRemove (N, &argc, argv);
+            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODEL", 0, "", argv[N]);
+            psArgumentRemove (N, &argc, argv);
         }
 
         // specify the test fit mode
-        if ((N = psArgumentGet (config->argc, config->argv, "-fitmode"))) {
-            psArgumentRemove (N, &config->argc, config->argv);
-            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODE", 0, "", config->argv[N]);
-            psArgumentRemove (N, &config->argc, config->argv);
+        if ((N = psArgumentGet (argc, argv, "-fitmode"))) {
+            psArgumentRemove (N, &argc, argv);
+            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_MODE", 0, "", argv[N]);
+            psArgumentRemove (N, &argc, argv);
         }
-        if ((N = psArgumentGet (config->argc, config->argv, "-fitset"))) {
-            psArgumentRemove (N, &config->argc, config->argv);
-            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_SET", 0, "", config->argv[N]);
-            psArgumentRemove (N, &config->argc, config->argv);
+        if ((N = psArgumentGet (argc, argv, "-fitset"))) {
+            psArgumentRemove (N, &argc, argv);
+            psMetadataAddStr (options, PS_LIST_TAIL, "TEST_FIT_SET", 0, "", argv[N]);
+            psArgumentRemove (N, &argc, argv);
         }
     }
 
     // photcode : used in output to supplement header data (argument or recipe?)
-    if ((N = psArgumentGet (config->argc, config->argv, "-photcode"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", config->argv[N]);
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-photcode"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (options, PS_LIST_TAIL, "PHOTCODE", PS_META_REPLACE, "", argv[N]);
+        psArgumentRemove (N, &argc, argv);
     }
 
     // break : used from recipe throughout psphotReadout
-    if ((N = psArgumentGet (config->argc, config->argv, "-break"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (options, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", config->argv[N]);
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-break"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (options, PS_LIST_TAIL, "BREAK_POINT", PS_META_REPLACE, "", argv[N]);
+        psArgumentRemove (N, &argc, argv);
     }
 
     // fitmode : used from recipe throughout psphotReadout
-    if ((N = psArgumentGet (config->argc, config->argv, "-fitmode"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (options, PS_LIST_TAIL, "FITMODE", PS_META_REPLACE, "", config->argv[N]);
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-fitmode"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (options, PS_LIST_TAIL, "FITMODE", PS_META_REPLACE, "", argv[N]);
+        psArgumentRemove (N, &argc, argv);
     }
 
     // analysis region : overrides recipe value, used in psphotReadout/psphotEnsemblePSF
-    if ((N = psArgumentGet (config->argc, config->argv, "-region"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (options, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", config->argv[N]);
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-region"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (options, PS_LIST_TAIL, "ANALYSIS_REGION", 0, "", argv[N]);
+        psArgumentRemove (N, &argc, argv);
     }
 
     // other arbitrary recipe values: -D key value (all added as string)
-    while ((N = psArgumentGet (config->argc, config->argv, "-D"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (options, PS_LIST_TAIL, config->argv[N], 0, "", config->argv[N+1]);
-        psArgumentRemove (N, &config->argc, config->argv);
-        psArgumentRemove (N, &config->argc, config->argv);
+    while ((N = psArgumentGet (argc, argv, "-D"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (options, PS_LIST_TAIL, argv[N], 0, "", argv[N+1]);
+        psArgumentRemove (N, &argc, argv);
+        psArgumentRemove (N, &argc, argv);
     }
 
     // other arbitrary recipe values: -Df key value (all added as float)
-    while ((N = psArgumentGet (config->argc, config->argv, "-Df"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddF32 (options, PS_LIST_TAIL, config->argv[N], 0, "", atof(config->argv[N+1]));
-        psArgumentRemove (N, &config->argc, config->argv);
-        psArgumentRemove (N, &config->argc, config->argv);
+    while ((N = psArgumentGet (argc, argv, "-Df"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddF32 (options, PS_LIST_TAIL, argv[N], 0, "", atof(argv[N+1]));
+        psArgumentRemove (N, &argc, argv);
+        psArgumentRemove (N, &argc, argv);
     }
 
     // other arbitrary recipe values: -Di key value (all added as int)
-    while ((N = psArgumentGet (config->argc, config->argv, "-Di"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddS32 (options, PS_LIST_TAIL, config->argv[N], 0, "", atoi(config->argv[N+1]));
-        psArgumentRemove (N, &config->argc, config->argv);
-        psArgumentRemove (N, &config->argc, config->argv);
+    while ((N = psArgumentGet (argc, argv, "-Di"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddS32 (options, PS_LIST_TAIL, argv[N], 0, "", atoi(argv[N+1]));
+        psArgumentRemove (N, &argc, argv);
+        psArgumentRemove (N, &argc, argv);
     }
 
@@ -121,17 +121,17 @@
 
     // chip selection is used to limit chips to be processed
-    if ((N = psArgumentGet (config->argc, config->argv, "-chip"))) {
-        psArgumentRemove (N, &config->argc, config->argv);
-        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(config->argv[N]));
-        psArgumentRemove (N, &config->argc, config->argv);
+    if ((N = psArgumentGet (argc, argv, "-chip"))) {
+        psArgumentRemove (N, &argc, argv);
+        psMetadataAddStr (config->arguments, PS_LIST_TAIL, "CHIP_SELECTIONS", PS_DATA_STRING, "", psStringCopy(argv[N]));
+        psArgumentRemove (N, &argc, argv);
     }
 
-    if (config->argc != 2) {
-        psError(PSPHOT_ERR_ARGUMENTS, true, "Expected to see one more argument; saw %d", config->argc - 1);
+    if (argc != 2) {
+        psError(PSPHOT_ERR_ARGUMENTS, true, "Expected to see one more argument; saw %d", argc - 1);
         return NULL;
     }
 
     // output position is fixed
-    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", config->argv[1]);
+    psMetadataAddStr (config->arguments, PS_LIST_TAIL, "OUTPUT", 0, "", argv[1]);
 
     psTrace(__func__, 1, "Done with psphotArguments...\n");
