Index: /trunk/ppImage/src/ppImageLoop.c
===================================================================
--- /trunk/ppImage/src/ppImageLoop.c	(revision 13674)
+++ /trunk/ppImage/src/ppImageLoop.c	(revision 13675)
@@ -10,12 +10,12 @@
 bool ppImageLoop (pmConfig *config, ppImageOptions *options) {
 
+    bool mdok;                      // Status of MD lookup
     bool status;
     pmChip *chip;
     pmCell *cell;
     pmReadout *readout;
-
-    bool mdok;                      // Status of MD lookup
+    psMetadata *stats = NULL;
+
     const char *statsName = psMetadataLookupStr(&mdok, config->arguments, "STATS"); // Filename for statistics
-    psMetadata *stats = NULL;           // Container for statistics
     FILE *statsFile = NULL;             // File stream for statistics
     if (mdok && statsName && strlen(statsName) > 0) {
@@ -27,5 +27,5 @@
             return false;
         } else {
-            stats = psMetadataAlloc();
+	    stats = psMetadataAlloc();
         }
         psFree(resolved);
@@ -123,7 +123,13 @@
                     return false;
                 }
-                ppStats(stats, output->fpa, view,
-                        options->satMask | options->badMask | options->maskValue,
-                        config);
+                psMetadata *newStats = ppStats(output->fpa, view,
+					       options->satMask | options->badMask | options->maskValue,
+					       config);
+		if (!newStats) {
+                    psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to generate stats for image.\n");
+                    return false;
+                }
+		psMetadataCopy (stats, newStats);
+		psFree (newStats);
             }
 
@@ -200,5 +206,4 @@
         psFree((void *)statsMDC);
         fclose(statsFile);
-
         psFree(stats);
     }
Index: /trunk/ppStats/src/ppStats.c
===================================================================
--- /trunk/ppStats/src/ppStats.c	(revision 13674)
+++ /trunk/ppStats/src/ppStats.c	(revision 13675)
@@ -9,6 +9,5 @@
 #include "ppStats.h"
 
-psMetadata *ppStats(psMetadata *out,    // Output metadata
-                    pmFPA *fpa,         // FPA for which to get statistics
+psMetadata *ppStats(pmFPA *fpa,         // FPA for which to get statistics
                     pmFPAview *view,    // View for analysis
                     psMaskType maskVal, // Value to mask
@@ -46,5 +45,5 @@
     // Go through the FPA and do the hard work
     psExit status;                      // Status of statistics loop
-    psMetadata *result = ppStatsLoop(&status, out, data, config);
+    psMetadata *result = ppStatsLoop(&status, data, config);
     if (status != PS_EXIT_SUCCESS) {
         psError (PS_ERR_UNKNOWN, false, "Not able to measure FPA statistics.\n");
Index: /trunk/ppStats/src/ppStats.h
===================================================================
--- /trunk/ppStats/src/ppStats.h	(revision 13674)
+++ /trunk/ppStats/src/ppStats.h	(revision 13675)
@@ -12,6 +12,5 @@
 
 // Perform the ppStats steps
-psMetadata *ppStats(psMetadata *out,    // Output metadata
-                    pmFPA *fpa,         // FPA for which to get statistics
+psMetadata *ppStats(pmFPA *fpa,         // FPA for which to get statistics
                     pmFPAview *view,    // View for analysis
                     psMaskType maskVal, // Value to mask
Index: /trunk/ppStats/src/ppStatsLoop.c
===================================================================
--- /trunk/ppStats/src/ppStatsLoop.c	(revision 13674)
+++ /trunk/ppStats/src/ppStatsLoop.c	(revision 13675)
@@ -353,5 +353,4 @@
 
 psMetadata *ppStatsLoop(psExit *result,
-                        psMetadata *fpaResults, // Metadata to hold the FPA results
                         ppStatsData *data, // The data
                         const pmConfig *config // Configuration
@@ -369,8 +368,5 @@
 
     // allocate a new one if needed
-    psMetadata *newResults = fpaResults;
-    if (!newResults) {
-        newResults = psMetadataAlloc();
-    }
+    psMetadata *newResults = psMetadataAlloc();
 
     // Iterate through the FPA
Index: /trunk/ppStats/src/ppStatsLoop.h
===================================================================
--- /trunk/ppStats/src/ppStatsLoop.h	(revision 13674)
+++ /trunk/ppStats/src/ppStatsLoop.h	(revision 13675)
@@ -7,5 +7,4 @@
 // Loop over the input image and do all the hard work
 psMetadata *ppStatsLoop(psExit *result,
-			psMetadata *fpaResults, // Metadata to hold the FPA results
                         ppStatsData *data, // The data
                         const pmConfig *config // Configuration
Index: /trunk/ppStats/src/ppStatsStandAlone.c
===================================================================
--- /trunk/ppStats/src/ppStatsStandAlone.c	(revision 13674)
+++ /trunk/ppStats/src/ppStatsStandAlone.c	(revision 13675)
@@ -58,5 +58,5 @@
 
     // Go through the FPA and do the hard work
-    psMetadata *results = ppStatsLoop(&status, NULL, data, config);
+    psMetadata *results = ppStatsLoop(&status, data, config);
     if (status != PS_EXIT_SUCCESS) {
         psErrorStackPrint(stderr, "Error in stats loop.\n");
