Index: /trunk/ppMerge/configure.ac
===================================================================
--- /trunk/ppMerge/configure.ac	(revision 8404)
+++ /trunk/ppMerge/configure.ac	(revision 8405)
@@ -35,4 +35,5 @@
 PKG_CHECK_MODULES([PSLIB], [pslib >= 0.9.0]) 
 PKG_CHECK_MODULES([PSMODULE], [psmodule >= 0.0.0]) 
+PKG_CHECK_MODULES([PPSTATS], [ppStats >= 0.0.0]) 
 
 dnl handle profiler building
Index: /trunk/ppMerge/src/Makefile.am
===================================================================
--- /trunk/ppMerge/src/Makefile.am	(revision 8404)
+++ /trunk/ppMerge/src/Makefile.am	(revision 8405)
@@ -1,6 +1,6 @@
 bin_PROGRAMS = ppMerge
 
-ppMerge_CFLAGS += $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS)
-ppMerge_LDFLAGS += $(PSMODULE_LIBS) $(PSLIB_LIBS) -Wl,-Bdynamic
+ppMerge_CFLAGS += $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS)
+ppMerge_LDFLAGS += $(PPSTATS_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS) -Wl,-Bdynamic
 
 ppMerge_SOURCES =		\
Index: /trunk/ppMerge/src/ppMerge.c
===================================================================
--- /trunk/ppMerge/src/ppMerge.c	(revision 8404)
+++ /trunk/ppMerge/src/ppMerge.c	(revision 8405)
@@ -2,4 +2,5 @@
 #include <pslib.h>
 #include <psmodules.h>
+#include <ppStats.h>
 
 #include "ppMerge.h"
@@ -49,4 +50,12 @@
     ppMergeCombine(scale, zero, data, options, config);
 
+    if (data->statsFile) {
+        psMetadata *stats = ppStats(NULL, data->out, NULL, config); // Statistics for output FPA
+        psString statsOut = psMetadataConfigFormat(stats); // String to write out
+        fprintf(data->statsFile, "%s", statsOut);
+        psFree(statsOut);
+        psFree(stats);
+    }
+
     pmFPAPrint(stdout, data->out, true, true);
 
Index: /trunk/ppMerge/src/ppMerge.h
===================================================================
--- /trunk/ppMerge/src/ppMerge.h	(revision 8404)
+++ /trunk/ppMerge/src/ppMerge.h	(revision 8405)
@@ -3,5 +3,5 @@
 
 #define TIMERNAME "ppMerge"
-#define RECIPENAME "PPMERGE"
+#define PPMERGE_RECIPE "PPMERGE"
 
 #endif
Index: /trunk/ppMerge/src/ppMergeCheckInputs.c
===================================================================
--- /trunk/ppMerge/src/ppMergeCheckInputs.c	(revision 8404)
+++ /trunk/ppMerge/src/ppMergeCheckInputs.c	(revision 8405)
@@ -23,4 +23,14 @@
         psErrorStackPrint(stderr, "Can't open output image: %s\n", outName);
         exit(EXIT_FAILURE);
+    }
+
+    // Statistics file
+    psString statsName = psMetadataLookupStr(NULL, config->arguments, "-stats"); // Name for statistics file
+    if (statsName && strlen(statsName) > 0) {
+        data->statsFile = fopen(statsName, "w");
+        if (!data->statsFile) {
+            psLogMsg(__func__, PS_LOG_WARN, "Unable to open statistics file %s --- ignored.\n",
+                     statsName);
+        }
     }
 
Index: /trunk/ppMerge/src/ppMergeCombine.c
===================================================================
--- /trunk/ppMerge/src/ppMergeCombine.c	(revision 8404)
+++ /trunk/ppMerge/src/ppMergeCombine.c	(revision 8405)
@@ -1,3 +1,4 @@
 #include <stdio.h>
+#include <unistd.h>
 #include <assert.h>
 #include <pslib.h>
@@ -12,5 +13,5 @@
     if (psTraceGetLevel(__func__) > 9) {
         psMemBlock **leaks = NULL;
-        int numLeaks = psMemCheckLeaks(0, &leaks, NULL, false);
+        int numLeaks = psMemCheckLeaks(0, &leaks, NULL, true);
         size_t largestSize = 0;
         psMemId largest = 0;
@@ -27,4 +28,5 @@
         psTrace(__func__, 0, "Memory in use: %zd\n", totalSize);
         psTrace(__func__, 0, "Largest block: %ld\n", largest);
+        psTrace(__func__, 0, "sbrk(): %zd\n", sbrk(0));
     }
     return;
@@ -121,4 +123,7 @@
                 }
                 numScan++;
+
+                memCheck();
+
             } while (numRead > 0);
             psFree(readout);            // Drop reference
Index: /trunk/ppMerge/src/ppMergeConfig.c
===================================================================
--- /trunk/ppMerge/src/ppMergeConfig.c	(revision 8404)
+++ /trunk/ppMerge/src/ppMergeConfig.c	(revision 8405)
@@ -34,4 +34,5 @@
     psMetadataAddBool(config->arguments, PS_LIST_TAIL, "-exptime", 0, "Scale by the exposure time?", false);
     psMetadataAddS32(config->arguments, PS_LIST_TAIL, "-onoff", 0, "Number of on/off pairs", 0);
+    psMetadataAddStr(config->arguments, PS_LIST_TAIL, "-stats", 0, "MDC file to hold statistics ", NULL);
 
     if (argc == 1) {
Index: /trunk/ppMerge/src/ppMergeData.c
===================================================================
--- /trunk/ppMerge/src/ppMergeData.c	(revision 8404)
+++ /trunk/ppMerge/src/ppMergeData.c	(revision 8405)
@@ -20,4 +20,9 @@
     if (data->outFile) {
         psFitsClose(data->outFile);
+        data->outFile = NULL;
+    }
+    if (data->statsFile) {
+        fclose(data->statsFile);
+        data->statsFile = NULL;
     }
 }
@@ -34,4 +39,5 @@
     data->out = NULL;
     data->outFile = NULL;
+    data->statsFile = NULL;
 
     return data;
Index: /trunk/ppMerge/src/ppMergeData.h
===================================================================
--- /trunk/ppMerge/src/ppMergeData.h	(revision 8404)
+++ /trunk/ppMerge/src/ppMergeData.h	(revision 8405)
@@ -12,4 +12,5 @@
     pmFPA *out;                         // Output FPA structure
     psFits *outFile;                    // FITS file handle for output
+    FILE *statsFile;                    // File stream for statistics output
 } ppMergeData;
 
Index: /trunk/ppMerge/src/ppMergeOptions.c
===================================================================
--- /trunk/ppMerge/src/ppMergeOptions.c	(revision 8404)
+++ /trunk/ppMerge/src/ppMergeOptions.c	(revision 8405)
@@ -122,7 +122,7 @@
     // Now we can read the recipe
     bool mdok = true;                   // Status of MD lookup
-    psMetadata *recipe = psMetadataLookupMD(&mdok, config->recipes, RECIPENAME); // Recipe information
+    psMetadata *recipe = psMetadataLookupMD(&mdok, config->recipes, PPMERGE_RECIPE); // Recipe information
     if (!mdok || !recipe) {
-        psError(PS_ERR_IO, true, "Unable to find recipe %s", RECIPENAME);
+        psError(PS_ERR_IO, true, "Unable to find recipe %s", PPMERGE_RECIPE);
         exit(EXIT_FAILURE);
     }
