Index: /trunk/pstamp/src/ppstampArguments.c
===================================================================
--- /trunk/pstamp/src/ppstampArguments.c	(revision 35892)
+++ /trunk/pstamp/src/ppstampArguments.c	(revision 35893)
@@ -26,4 +26,5 @@
     fprintf(stderr, "   [-variance var_image] : variance image\n");
     fprintf(stderr, "   [-sources sources]    : sources cmf (ignored for chip stage)\n");
+    fprintf(stderr, "   [-forheader mdcfile   : metadata config file contaiing keywords to add to fits headers\n");
     fprintf(stderr, "   [-stage stage]        : stage of input image (raw, chip, warp, stack, diff)\n");
     fprintf(stderr, "   [-write_jpeg]         : write a JPEG  format of the image stamp\n");
@@ -135,4 +136,22 @@
         usage();
     }
+
+    if ((argnum = psArgumentGet(argc, argv, "-forheader"))) {
+        psArgumentRemove(argnum, &argc, argv);
+        if (argnum >= argc) {
+            psError(PSTAMP_ERR_ARGUMENTS, true, "metadata config filename value required with option -forheader");
+            usage();
+        }
+
+        const char *filename = argv[argnum];
+        psArgumentRemove(argnum, &argc, argv);
+
+        unsigned int nFail = 0;
+        options->headerAdditions = psMetadataConfigRead(NULL, &nFail, filename, false);
+        if (nFail || !options->headerAdditions) {
+            psError(PS_ERR_UNKNOWN, false, "failed to read metadata from %s", filename);
+            return false;
+        }
+    }
     
     if ((argnum = psArgumentGet(argc, argv, "-no_censor_masked"))) {
Index: /trunk/pstamp/src/ppstampMakeStamp.c
===================================================================
--- /trunk/pstamp/src/ppstampMakeStamp.c	(revision 35892)
+++ /trunk/pstamp/src/ppstampMakeStamp.c	(revision 35893)
@@ -165,4 +165,13 @@
 
     ppstampVersionMetadata(outHDU->header, options);
+
+    // copy any user supplied keywords
+    if (options->headerAdditions) {
+        if (!psMetadataOverlay(outHDU->header, options->headerAdditions)) {
+            psError(PS_ERR_UNKNOWN, false, "Failed to copy header additions to output\n");
+            return false;
+        }
+    }
+
 
     return true;
Index: /trunk/pstamp/src/ppstampOptions.c
===================================================================
--- /trunk/pstamp/src/ppstampOptions.c	(revision 35892)
+++ /trunk/pstamp/src/ppstampOptions.c	(revision 35893)
@@ -10,4 +10,5 @@
 {
     psFree(options->chipName);
+    psFree(options->headerAdditions);
 }
 
@@ -30,4 +31,5 @@
     options->cellName  = NULL;
     options->stage  = NULL;
+    options->headerAdditions = NULL;
     options->censorMasked = false;
     options->writeJPEG = false;
Index: /trunk/pstamp/src/ppstampOptions.h
===================================================================
--- /trunk/pstamp/src/ppstampOptions.h	(revision 35892)
+++ /trunk/pstamp/src/ppstampOptions.h	(revision 35893)
@@ -12,4 +12,5 @@
     psString    cellName;
     psString    stage;
+    psMetadata  *headerAdditions;
     bool        censorMasked;
     bool        writeJPEG;
