Index: /trunk/ppFringe/src/ppFringeLoop.c
===================================================================
--- /trunk/ppFringe/src/ppFringeLoop.c	(revision 7837)
+++ /trunk/ppFringe/src/ppFringeLoop.c	(revision 7838)
@@ -29,4 +29,5 @@
             if (!pmCellRead(cell, data->inFile, config->database)) {
                 psLogMsg(__func__, PS_LOG_WARN, "Unable to read chip %s cell %s\n", chipName, cellName);
+                pmCellFreeData(cell);
                 continue;
             }
@@ -34,4 +35,5 @@
             psArray *readouts = cell->readouts; // Array of component readouts
             if (readouts->n == 0) {
+                pmCellFreeData(cell);
                 continue;
             }
@@ -44,4 +46,5 @@
                 psLogMsg(__func__, PS_LOG_WARN, "No image associated with readout in chip %s cell %s --- "
                          "ignored.\n", chipName, cellName);
+                pmCellFreeData(cell);
                 continue;
             }
@@ -54,4 +57,5 @@
                          "ignored.\n", chipName, cellName);
                 psFree(regions);
+                pmCellFreeData(cell);
                 continue;
             }
@@ -63,4 +67,5 @@
                          "ignored.\n", chipName, cellName);
                 psFree(regions);
+                pmCellFreeData(cell);
                 continue;
             }
@@ -74,8 +79,14 @@
                 psFree(regions);
                 psFree(fringeStats);
+                pmCellFreeData(cell);
                 continue;
             }
+
+            psFree(regions);
+            psFree(fringeStats);
+            pmCellFreeData(cell);
         }
+        pmChipFreeData(chip);
     }
-
+    pmFPAFreeData(fpa);
 }
