Index: trunk/psModules/src/objects/pmSourceIO.c
===================================================================
--- trunk/psModules/src/objects/pmSourceIO.c	(revision 37964)
+++ trunk/psModules/src/objects/pmSourceIO.c	(revision 38376)
@@ -1054,9 +1054,12 @@
         }
 
+        bool saveSourcesHeader = psMetadataLookupBool(&status, recipe, "SAVE.INPUT.SOURCES.HEADER");;
         // advance to the IMAGE HEADER extension
-        if (hdu->header == NULL) {
+        if (saveSourcesHeader || hdu->header == NULL) {
             // if the IMAGE header does not exist, we have no data for this view
             if (!psFitsMoveExtNameClean (file->fits, headname)) {
-                readout->data_exists = false;
+                if (hdu->header == NULL) {
+                    readout->data_exists = false;
+                }
                 psFree (headname);
                 psFree (dataname);
@@ -1064,5 +1067,14 @@
                 return true;
             }
-            hdu->header = psFitsReadHeader (NULL, file->fits);
+            psMetadata *sourcesHeader = psFitsReadHeader (NULL, file->fits);
+            // Save the hdu header for the sources on readout->analysis. 
+            // psphotStack uses this in updateMode
+            psMetadataAddPtr(readout->analysis, PS_LIST_TAIL, "INPUT.SOURCES.HEADER", 
+                PS_DATA_UNKNOWN | PS_META_REPLACE, "fits header from input sources file", sourcesHeader);
+            if (hdu->header == NULL) {
+                hdu->header = sourcesHeader;
+            } else {
+                psFree(sourcesHeader);
+            }
         }
 
