Index: /trunk/ppMerge/src/ppMergeCamera.c
===================================================================
--- /trunk/ppMerge/src/ppMergeCamera.c	(revision 24781)
+++ /trunk/ppMerge/src/ppMergeCamera.c	(revision 24782)
@@ -337,4 +337,5 @@
       case PPMERGE_TYPE_FRINGE:
         fileType = PM_FPA_FILE_FRINGE;
+	break;
       default:
         psAbort("Unknown frame type: %x", type);
Index: /trunk/ppMerge/src/ppMergeFiles.c
===================================================================
--- /trunk/ppMerge/src/ppMergeFiles.c	(revision 24781)
+++ /trunk/ppMerge/src/ppMergeFiles.c	(revision 24782)
@@ -220,4 +220,5 @@
       case PPMERGE_TYPE_FRINGE:
         outSuffix = "FRINGE";
+	break;
       default:
         psAbort("Unknown frame type: %x", type);
Index: /trunk/ppMerge/src/ppMergeLoop.c
===================================================================
--- /trunk/ppMerge/src/ppMergeLoop.c	(revision 24781)
+++ /trunk/ppMerge/src/ppMergeLoop.c	(revision 24782)
@@ -94,11 +94,14 @@
     psVector *scales = NULL, *zeros = NULL; ///< Scale and zeroes for combination
     psArray *shutters = NULL;           ///< Shutter correction data
+    psImage *zeroSet = NULL;
     switch (type) {
       case PPMERGE_TYPE_FRINGE:
-        zeros = psMetadataLookupPtr(NULL, arguments, "ZEROS");
-        if (!zeros) {
+        zeroSet = psMetadataLookupPtr(NULL, arguments, "ZEROS");
+        if (!zeroSet) {
             psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find ZEROS");
             goto ERROR;
         }
+	// the zeros vector is passed to pmReadoutCombine for each set of inputs per cell
+	zeros = psVectorAlloc(zeroSet->numRows, PS_TYPE_F32);
         // Flow through
       case PPMERGE_TYPE_FLAT:
@@ -140,4 +143,5 @@
     pmFPA *outFPA = output->fpa;        ///< Output FPA
     pmHDU *lastHDU = NULL;              // Last HDU that was updated
+
     int cellNum = 0;                    ///< Index of cell
     if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) {
@@ -194,4 +198,10 @@
             }
 
+	    if (zeroSet) {
+	      for (int i = 0; i < zeroSet->numRows; i++) {
+		zeros->data.F32[i] = zeroSet->data.F32[i][cellNum];
+	      }
+	    }
+
             ppMergeFileGroup *fileGroup = NULL;
             psArray *fileGroups = psArrayAlloc(nThreads + 1);
@@ -335,4 +345,5 @@
 
             psFree(fileGroups);
+	    psFree(zeros);
 
             // XXX eventually need to keep both the shutter and the pattern, as we do with dark
Index: /trunk/ppMerge/src/ppMergeScaleZero.c
===================================================================
--- /trunk/ppMerge/src/ppMergeScaleZero.c	(revision 24781)
+++ /trunk/ppMerge/src/ppMergeScaleZero.c	(revision 24782)
@@ -87,9 +87,10 @@
                 }
 
+		// skip cells with video data
                 if (cell->readouts->n > 1) {
-                    psError(PS_ERR_BAD_PARAMETER_VALUE, true,
-                            "File %d chip %d cell %d contains more than one readout (%ld)",
-                            i, view->chip, view->cell, cell->readouts->n);
-                    goto ERROR;
+		  // psError(PS_ERR_BAD_PARAMETER_VALUE, true, "File %d chip %d cell %d contains more than one readout (%ld)", i, view->chip, view->cell, cell->readouts->n);
+		  // goto ERROR;
+		  psWarning("File %d chip %d cell %d contains more than one readout (%ld), skipping", i, view->chip, view->cell, cell->readouts->n);
+		  continue;
                 }
                 pmReadout *readout = cell->readouts->data[0]; ///< Readout of interest
