Index: trunk/ppMerge/src/ppMergeCombine.c
===================================================================
--- trunk/ppMerge/src/ppMergeCombine.c	(revision 7061)
+++ trunk/ppMerge/src/ppMergeCombine.c	(revision 7067)
@@ -4,4 +4,5 @@
 #include <psmodules.h>
 
+#include "ppMerge.h"
 #include "ppMergeData.h"
 #include "ppMergeCombine.h"
@@ -21,11 +22,11 @@
     // Sanity checks
     assert(!options->scale || scales);
-    assert(!scales || !*scales || ((*scales)->type.type == PS_TYPE_F64 &&
-                                   (*scales)->numCols == data->numCells &&
-                                   (*scales)->numRows == filenames->n));
+    assert(!scales || (scales->type.type == PS_TYPE_F64 &&
+                       scales->numCols == data->numCells &&
+                       scales->numRows == filenames->n));
     assert(!options->zero || zeros);
-    assert(!zeros || !*zeros || ((*zeros)->type.type == PS_TYPE_F64 &&
-                                 (*zeros)->numCols == data->numCells &&
-                                 (*zeros)->numRows == filenames->n));
+    assert(!zeros || (zeros->type.type == PS_TYPE_F64 &&
+                      zeros->numCols == data->numCells &&
+                      zeros->numRows == filenames->n));
 
     // Iterate over the FPA
@@ -38,5 +39,5 @@
             continue;
         }
-        pmChipWrite(chip, outFile, config->database, false);
+        pmChipWrite(chip, data->outFile, config->database, false);
         psArray *cells = chip->cells;   // Array of output cells
         for (int j = 0; j < cells->n; j++) {
@@ -46,5 +47,5 @@
             }
             cellNum++;
-            pmCellWrite(cell, outFile, config->database, false);
+            pmCellWrite(cell, data->outFile, config->database, false);
             pmReadout *readout = pmReadoutAlloc(cell); // Output readout of interest
             psArray *stack = psArrayAlloc(filenames->n); // Stack of readouts to combine
@@ -53,5 +54,5 @@
                 cellScales = psImageCol(NULL, scales, cellNum);
             }
-            psVector cellZeros = NULL;  // Zeros for this cell
+            psVector *cellZeros = NULL;  // Zeros for this cell
             if (zeros) {
                 cellZeros = psImageCol(NULL, zeros, cellNum);
@@ -81,15 +82,15 @@
 
                     // Only reading and writing the first readout in each cell (plane 0)
-                    stillReading |= pmReadoutReadNext(stack->data[k], fits, 0, options->rows);
+                    stillReadingRows |= pmReadoutReadNext(stack->data[k], fits, 0, options->rows);
                     psFitsClose(fits);
                 }
 
-                pmReadoutCombine(readout, stack, cellZeros, cellScales, combineParams);
-                pmReadoutWriteNext(readout, outFile, 0);
+                pmReadoutCombine(readout, stack, cellZeros, cellScales, options->combine);
+                pmReadoutWriteNext(readout, data->outFile, 0);
 
             } while (stillReadingRows);
 
             // Write the pixels
-            pmCellWrite(cell, outFile, config->database, true);
+            pmCellWrite(cell, data->outFile, config->database, true);
 
             // Blow away the cell data
@@ -104,5 +105,5 @@
 
         // Write the pixels
-        pmChipWrite(chip, outFile, config->database, true);
+        pmChipWrite(chip, data->outFile, config->database, true);
 
         // Blow away the chip data
@@ -117,5 +118,5 @@
 
     // Write the pixels
-    pmFPAWrite(fpa, outFile, config->database, true);
+    pmFPAWrite(data->out, data->outFile, config->database, true);
 
     // Blow away the FPA data
@@ -124,5 +125,5 @@
         pmFPAFreeData(fpaIn);
     }
-    pmFPAFreeData(fpa);
+    pmFPAFreeData(data->out);
 
     return true;
