Index: trunk/ppBackground/src/ppBackgroundArguments.c
===================================================================
--- trunk/ppBackground/src/ppBackgroundArguments.c	(revision 28276)
+++ trunk/ppBackground/src/ppBackgroundArguments.c	(revision 28280)
@@ -48,6 +48,7 @@
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-pattern", 0, "Filename of pattern correction", NULL);
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-background", 0, "Filename of background model", NULL);
-    psMetadataAddStr(arguments, PS_LIST_TAIL, "-image", 0, "Filename of image", NULL);
+    psMetadataAddStr(arguments, PS_LIST_TAIL, "-image", 0, "Filename of image (required)", NULL);
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-mask", 0, "Filename of mask", NULL);
+    psMetadataAddStr(arguments, PS_LIST_TAIL, "-stats", 0, "Output statistics file", NULL);
     if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 2) {
         usage(argv[0], arguments, data);
@@ -68,6 +69,21 @@
         return false;
     }
+    if (!data->imageName) {
+        psError(PPBACKGROUND_ERR_CONFIG, true, "Must specify -image");
+        return false;
+    }
 
     PS_ASSERT_STRING_NON_EMPTY(data->outRoot, false);
+
+    const char *statsName = psMetadataLookupStr(NULL, arguments, "-stats");
+    if (statsName) {
+        data->statsFile = fopen(statsName, "w");
+        if (!data->statsFile) {
+            psError(PPBACKGROUND_ERR_IO, true, "Unable to open statistics file %s", statsName);
+            return false;
+        }
+        data->stats = psMetadataAlloc();
+        pmConfigRunFilenameAddWrite(data->config, "STATS", statsName);
+    }
 
     return true;
