Index: trunk/ppImage/src/ppTest.c
===================================================================
--- trunk/ppImage/src/ppTest.c	(revision 7494)
+++ trunk/ppImage/src/ppTest.c	(revision 7677)
@@ -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, &argc, argv) || argc != 3) {
+    if (! psArgumentParse(config->arguments, &config->argc, config->argv) || argc != 3) {
         printf("\nPan-STARRS Phase 2 processing\n\n");
-        printf("Usage: %s INPUT.fits OUTPUT.fits\n\n", argv[0]);
+        printf("Usage: %s INPUT.fits OUTPUT.fits\n\n", config->argv[0]);
         psArgumentHelp(config->arguments);
         psFree(config->arguments);
@@ -36,6 +36,8 @@
 
     // 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",  argv[1]);
-    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-output", 0, "Name of the output image", argv[2]);
+    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]);
 
     // Define database handle, if used
@@ -103,4 +105,5 @@
     pmFPAview *mosaicView = pmFPAviewAlloc(0);
     pmFPAAddSourceFromView(mosaicFPA, mosaicView, mosaicFormat);
+    psFree(mosaicView);
 #endif
 
@@ -110,7 +113,10 @@
 #if 0
     psArray *chips = fpa->chips;
-    //pmFPAWrite(fpa, outFile, NULL, false);
+    pmFPAWrite(fpa, outFile, NULL, false, false);
     for (int i = 0; i < chips->n; i++) {
+        printf("Chip %d\n", i);
         pmChip *chip = chips->data[i];
+        pmChipRead(chip, inFile, NULL);
+#if 0
         //pmChipRead(chip, inFile, NULL);
         //pmChipWrite(chip, outFile, NULL, false);
@@ -129,17 +135,20 @@
             psFree(readout);
         }
-        pmChipMosaic(mosaicFPA->chips->data[0], chip);
+#endif
+        pmChipMosaic(mosaicFPA->chips->data[i], chip);
+        pmChipWrite(mosaicFPA->chips->data[i], outFile, NULL, true, true);
+        pmChipFreeData(chip);
+        pmChipFreeData(mosaicFPA->chips->data[i]);
     }
 #endif
 
+#if 1
     pmFPAMosaic(mosaicFPA, fpa);
-
-#if 1
     pmFPAWrite(mosaicFPA, outFile, NULL, true, true);
-    pmFPAPrint(stdout, mosaicFPA, true, true);
+    //pmFPAPrint(stdout, mosaicFPA, true, true);
     psFree(mosaicCamera);
     psFree(mosaicFormat);
     psFree(mosaicView);
-    psFree(mosaicFPA);
+    //psFree(mosaicFPA);
 #endif
 
