Index: /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCleanup.c
===================================================================
--- /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCleanup.c	(revision 31089)
+++ /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCleanup.c	(revision 31090)
@@ -116,4 +116,5 @@
 
     psTrace("ppStack", 1, "Finished at %f sec\n", psTimerMark("PPSTACK"));
+    psLogMsg("ppStack", PS_LOG_INFO, "Complete ppStack run: %f sec\n", psTimerMark("PPSTACK"));
     psTimerStop();
 
Index: /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCombineFinal.c
===================================================================
--- /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCombineFinal.c	(revision 31089)
+++ /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCombineFinal.c	(revision 31090)
@@ -10,4 +10,6 @@
     psAssert(config, "Require configuration");
 
+    psTimerStart("PPSTACK_FINAL");
+    
     pmReadout *outRO = options->outRO;                                      // Output readout
     pmReadout *expRO = options->expRO;                                      // Exposure readout
@@ -111,4 +113,13 @@
 #endif
 
+    if (options->stats) {
+        // 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_REPLACE, "Time to make final stack", psTimerMark("PPSTACK_FINAL"));
+	}
+    }
+    
     return true;
 }
Index: /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCombineInitial.c
===================================================================
--- /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCombineInitial.c	(revision 31089)
+++ /branches/eam_branches/ipp-20110213/ppStack/src/ppStackCombineInitial.c	(revision 31090)
@@ -89,6 +89,5 @@
 
     if (options->stats) {
-        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_INITIAL", 0,
-                         "Time to make final stack", psTimerMark("PPSTACK_INITIAL"));
+        psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_INITIAL", PS_META_REPLACE, "Time to make initial stack", psTimerMark("PPSTACK_INITIAL"));
     }
 
Index: /branches/eam_branches/ipp-20110213/ppStack/src/ppStackConvolve.c
===================================================================
--- /branches/eam_branches/ipp-20110213/ppStack/src/ppStackConvolve.c	(revision 31089)
+++ /branches/eam_branches/ipp-20110213/ppStack/src/ppStackConvolve.c	(revision 31090)
@@ -16,4 +16,6 @@
     psAssert(config, "Require configuration");
 
+    psTimerStart("PPSTACK_CONVOLVE");
+    
     psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // ppStack recipe
     psAssert(recipe, "We've thrown an error on this before.");
@@ -424,4 +426,9 @@
     psFree(satValues);
 
+    if (options->stats) {
+      psMetadataAddF32(options->stats, PS_LIST_TAIL, "TIME_CONVOLVE", PS_META_REPLACE,
+		       "Time to convolve input images", psTimerMark("PPSTACK_CONVOLVE"));
+    }
+    
     return true;
 }
Index: /branches/eam_branches/ipp-20110213/ppStack/src/ppStackPhotometry.c
===================================================================
--- /branches/eam_branches/ipp-20110213/ppStack/src/ppStackPhotometry.c	(revision 31089)
+++ /branches/eam_branches/ipp-20110213/ppStack/src/ppStackPhotometry.c	(revision 31090)
@@ -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_REPLACE, "Time to do photometry", psTimerMark("PPSTACK_PHOT"));
     }
 
