Index: trunk/ppSub/src/ppSubDefineOutput.c
===================================================================
--- trunk/ppSub/src/ppSubDefineOutput.c	(revision 28255)
+++ trunk/ppSub/src/ppSubDefineOutput.c	(revision 31156)
@@ -73,16 +73,12 @@
     pmFPAfile *inFile = psMetadataLookupPtr(NULL, config->files, "PPSUB.INPUT"); // Input file
 
-    // We should be using the GNU version of basename() which doesn't modify its argument, but just in case,
-    // we'll copy the string.
-    psString refName = psStringCopy(refFile->filename); // Filename of reference
-    const char *refBase = basename(refName);            // Basename of reference
-    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.REFERENCE", 0,
-                     "Subtraction reference", refBase);
-    psFree(refName);
-    psString inName = psStringCopy(inFile->filename);   // Filename of input
-    const char *inBase = basename(inName);              // Basename of input
-    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.INPUT", 0,
-                     "Subtraction input", inBase);
-    psFree(inName);
+    // save the names of the input and reference image in the header
+    psString refBase = psStringFileBasename(refFile->origname);            // Basename of reference
+    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.REFERENCE", 0, "Subtraction reference", refBase);
+    psFree(refBase);
+
+    psString inBase = psStringFileBasename(inFile->origname);              // Basename of input
+    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.INPUT", 0, "Subtraction input", inBase);
+    psFree(inBase);
 
     ppSubVersionHeader(outHDU->header);
