Index: /tags/ipp-20110218/ppStack/src/ppStackCombineFinal.c
===================================================================
--- /tags/ipp-20110218/ppStack/src/ppStackCombineFinal.c	(revision 31052)
+++ /tags/ipp-20110218/ppStack/src/ppStackCombineFinal.c	(revision 31053)
@@ -11,5 +11,5 @@
 
     psTimerStart("PPSTACK_FINAL");
-    
+
     pmReadout *outRO = options->outRO;                                      // Output readout
     pmReadout *expRO = options->expRO;                                      // Exposure readout
@@ -87,7 +87,7 @@
     bool haveCovariances = false;
     if (covariances) {
-	for (int i = 0; i < covariances->n; i++) {
-	    haveCovariances |= (covariances->data[i] != NULL);
-	}
+        for (int i = 0; i < covariances->n; i++) {
+            haveCovariances |= (covariances->data[i] != NULL);
+        }
     }
 
@@ -114,8 +114,12 @@
 
     if (options->stats) {
-      psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_FINAL", 0,
-		       "Time to make final stack", psTimerMark("PPSTACK_FINAL"));
+        // only add the timer if it has not been set (convolved stack)
+        // XXX this is weak: we should be distinguishing explicitly between convolved and unconvolved stacks
+        psMetadataLookupF32 (&status, options->stats, "TIME_FINAL");
+        if (!status) {
+            psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_FINAL", PS_META_DUPLICATE_OK, "Time to make final stack", psTimerMark("PPSTACK_FINAL"));
+        }
     }
-    
+
     return true;
 }
Index: /tags/ipp-20110218/ppStack/src/ppStackCombineInitial.c
===================================================================
--- /tags/ipp-20110218/ppStack/src/ppStackCombineInitial.c	(revision 31052)
+++ /tags/ipp-20110218/ppStack/src/ppStackCombineInitial.c	(revision 31053)
@@ -89,5 +89,5 @@
 
     if (options->stats) {
-        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_INITIAL", 0,
+        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_INITIAL", PS_META_DUPLICATE_OK,
                          "Time to make initial stack", psTimerMark("PPSTACK_INITIAL"));
     }
Index: /tags/ipp-20110218/ppStack/src/ppStackConvolve.c
===================================================================
--- /tags/ipp-20110218/ppStack/src/ppStackConvolve.c	(revision 31052)
+++ /tags/ipp-20110218/ppStack/src/ppStackConvolve.c	(revision 31053)
@@ -17,5 +17,5 @@
 
     psTimerStart("PPSTACK_CONVOLVE");
-    
+
     psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // ppStack recipe
     psAssert(recipe, "We've thrown an error on this before.");
@@ -368,8 +368,8 @@
 
     if (options->stats) {
-      psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_CONVOLVE", 0,
-		       "Time to convolve input images", psTimerMark("PPSTACK_CONVOLVE"));
-    }
-    
+        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_CONVOLVE", PS_META_DUPLICATE_OK,
+                       "Time to convolve input images", psTimerMark("PPSTACK_CONVOLVE"));
+    }
+
     return true;
 }
Index: /tags/ipp-20110218/ppStack/src/ppStackPhotometry.c
===================================================================
--- /tags/ipp-20110218/ppStack/src/ppStackPhotometry.c	(revision 31052)
+++ /tags/ipp-20110218/ppStack/src/ppStackPhotometry.c	(revision 31053)
@@ -84,5 +84,5 @@
             psMetadataAddS32(options->stats, PS_LIST_TAIL, "NUM_SOURCES", 0, "Number of sources detected", 0);
         }
-        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_PHOT", 0, "Time to do photometry", psTimerMark("PPSTACK_PHOT"));
+        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_PHOT", PS_META_DUPLICATE_OK, "Time to do photometry", psTimerMark("PPSTACK_PHOT"));
     }
 
