Index: /trunk/ppStack/src/ppStackCamera.c
===================================================================
--- /trunk/ppStack/src/ppStackCamera.c	(revision 19193)
+++ /trunk/ppStack/src/ppStackCamera.c	(revision 19194)
@@ -350,4 +350,16 @@
     }
 
+    if (havePSFs) {
+        pmFPAfile *targetPSF = pmFPAfileDefineOutput(config, output->fpa, "PPSTACK.TARGET.PSF");
+        if (!targetPSF) {
+            psError(PS_ERR_IO, false, _("Unable to generate output file from PPSTACK.TARGET.PSF"));
+            return false;
+        }
+        if (targetPSF->type != PM_FPA_FILE_PSF) {
+            psError(PS_ERR_IO, true, "PPSTACK.TARGET.PSF is not of type PSF");
+            return false;
+        }
+    }
+
     psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // Recipe for ppSim
     if (!recipe) {
Index: /trunk/ppStack/src/ppStackLoop.c
===================================================================
--- /trunk/ppStack/src/ppStackLoop.c	(revision 19193)
+++ /trunk/ppStack/src/ppStackLoop.c	(revision 19194)
@@ -20,5 +20,5 @@
 
 // Files required in preparation for convolution
-static char *prepareFiles[] = { "PPSTACK.INPUT.PSF", "PPSTACK.INPUT.SOURCES", NULL };
+static char *prepareFiles[] = { "PPSTACK.INPUT.PSF", "PPSTACK.INPUT.SOURCES", "PPSTACK.TARGET.PSF", NULL };
 
 // Files required for the convolution
@@ -349,4 +349,8 @@
             return false;
         }
+
+        pmChip *outChip = pmFPAviewThisChip(view, output->fpa); // Output chip
+        psMetadataAddPtr(outChip->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN,
+                         "Target PSF", targetPSF);
 
         if (haveSources) {
