Index: /trunk/ppImage/src/ppImageLoop.c
===================================================================
--- /trunk/ppImage/src/ppImageLoop.c	(revision 13676)
+++ /trunk/ppImage/src/ppImageLoop.c	(revision 13677)
@@ -26,7 +26,6 @@
             psFree(resolved);
             return false;
-        } else {
-	    stats = psMetadataAlloc();
-        }
+        }
+	stats = psMetadataAlloc();
         psFree(resolved);
     }
@@ -124,15 +123,15 @@
                 }
 
-                psMetadata *newStats = ppStats(output->fpa, view,
-					       options->satMask | options->badMask | options->maskValue,
-					       config);
-		if (!newStats) {
+                if (ppStats(stats, 
+			    output->fpa, 
+			    view,
+			    options->satMask | options->badMask | options->maskValue,
+			    config)) {
                     psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to generate stats for image.\n");
-                    return false;
-                }
-		psMetadataCopy (stats, newStats);
-		psFree (newStats);
-            }
-
+		    psFree (stats);
+                    return false;
+                }
+            }
+	    
             // Add MD5 information for cell
             pmHDU *hdu = pmHDUFromCell(cell); // HDU that owns the cell
Index: /trunk/ppMerge/src/ppMergeCombine.c
===================================================================
--- /trunk/ppMerge/src/ppMergeCombine.c	(revision 13676)
+++ /trunk/ppMerge/src/ppMergeCombine.c	(revision 13677)
@@ -265,7 +265,16 @@
             // Statistics on the merged cell
             if (data->statsFile) {
-                data->stats = ppStats(data->stats, data->out, view, options->combine->maskVal,
-                                      config); // Statistics for output FPA
-            }
+		if (!data->stats) {
+		    data->stats = psMetadataAlloc();
+		}
+                if (!ppStats(data->stats, 
+			     data->out, 
+			     view, 
+			     options->combine->maskVal,
+			     config)) {
+                    psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to generate stats for image.\n");
+		    return false;
+		}
+	    }
 
             // We threw away the bias sections --- record this
Index: /trunk/ppStats/src/ppStats.c
===================================================================
--- /trunk/ppStats/src/ppStats.c	(revision 13676)
+++ /trunk/ppStats/src/ppStats.c	(revision 13677)
@@ -9,5 +9,6 @@
 #include "ppStats.h"
 
-psMetadata *ppStats(pmFPA *fpa,         // FPA for which to get statistics
+psMetadata *ppStats(psMetadata *out,
+		    pmFPA *fpa,         // FPA for which to get statistics
                     pmFPAview *view,    // View for analysis
                     psMaskType maskVal, // Value to mask
@@ -53,4 +54,11 @@
     }
 
+    if (out != NULL) {
+	psMetadataCopy (out, result);
+	psFree(result);
+	psFree(data);
+	return out;
+    }
+
     psFree(data);
     return result;
Index: /trunk/ppStats/src/ppStats.h
===================================================================
--- /trunk/ppStats/src/ppStats.h	(revision 13676)
+++ /trunk/ppStats/src/ppStats.h	(revision 13677)
@@ -12,5 +12,6 @@
 
 // Perform the ppStats steps
-psMetadata *ppStats(pmFPA *fpa,         // FPA for which to get statistics
+psMetadata *ppStats(psMetadata *out,
+		    pmFPA *fpa,         // FPA for which to get statistics
                     pmFPAview *view,    // View for analysis
                     psMaskType maskVal, // Value to mask
