Index: /trunk/ppImage/src/ppImageDetrendFringe.h
===================================================================
--- /trunk/ppImage/src/ppImageDetrendFringe.h	(revision 10334)
+++ /trunk/ppImage/src/ppImageDetrendFringe.h	(revision 10335)
@@ -19,6 +19,6 @@
 
 // Generate fringe frame
-psImage *ppImageDetrendFringeGenerate(pmCell *science, // Science cell
-                                      pmCell *fringes // Fringe cell, one readout per fringe component
+bool ppImageDetrendFringeGenerate(pmCell *science, // Science cell
+                                  pmCell *fringes // Fringe cell, one readout per fringe component
     );
 
Index: /trunk/ppImage/src/ppImageLoop.c
===================================================================
--- /trunk/ppImage/src/ppImageLoop.c	(revision 10334)
+++ /trunk/ppImage/src/ppImageLoop.c	(revision 10335)
@@ -109,18 +109,7 @@
                 psTrace("ppImage", 3, "Applying fringe correction...\n");
                 pmCell *fringeCell = pmFPAfileThisCell(config->files, view, "PPIMAGE.FRINGE");
-                psImage *fringe = ppImageDetrendFringeGenerate(cell, fringeCell);
-                while ((readout = pmFPAviewNextReadout(view, input->fpa, 1)) != NULL) {
-                    if (!readout->data_exists) {
-                        continue;
-                    }
-
-                    // XXX: Make generic, so subregions may be subtracted as well
-                    psBinaryOp(readout->image, readout->image, "-", fringe);
-
-                    if (!pmFPAfileIOChecks(config, view, PM_FPA_AFTER)) {
-                        return false;
-                    }
+                if (!ppImageDetrendFringeGenerate(cell, fringeCell)) {
+                    return false;
                 }
-                psFree(fringe);
             }
 
