Index: trunk/psphot/src/load_args.c
===================================================================
--- trunk/psphot/src/load_args.c	(revision 4375)
+++ trunk/psphot/src/load_args.c	(revision 4641)
@@ -13,5 +13,5 @@
 
   char *mask = NULL;
-  if ((N = get_argument (*argc, argv, "--mask"))) {
+  if ((N = get_argument (*argc, argv, "-mask"))) {
     remove_argument (N, argc, argv);
     mask = psStringCopy (argv[N]);
@@ -20,5 +20,5 @@
 
   char *noise = NULL;
-  if ((N = get_argument (*argc, argv, "--noise"))) {
+  if ((N = get_argument (*argc, argv, "-noise"))) {
     remove_argument (N, argc, argv);
     noise = psStringCopy (argv[N]);
@@ -26,8 +26,17 @@
   }
 
+  char *diff = NULL;
+  if ((N = get_argument (*argc, argv, "-diff"))) {
+    remove_argument (N, argc, argv);
+    diff = psStringCopy (argv[N]);
+    remove_argument (N, argc, argv);
+  }
+
   if (*argc != 4) usage ();
 
+  // load config information
   psMetadata *config = psMetadataParseConfig (NULL, &Nfail, argv[3], FALSE);
 
+  // identify input image & optional noise & mask images
   psMetadataAddStr (config, PS_LIST_HEAD, "INPUT",  "", argv[1]);
   psMetadataAddStr (config, PS_LIST_HEAD, "OUTPUT", "", argv[2]);
@@ -38,4 +47,7 @@
     psMetadataAddStr (config, PS_LIST_HEAD, "NOISE", "", noise);
   }
+  if (diff != NULL) {
+    psMetadataAddStr (config, PS_LIST_HEAD, "DIFF_IMAGE", "", diff);
+  }
   return (config);
 }
@@ -43,8 +55,9 @@
 int usage () {
 
-    fprintf (stderr, "USAGE: psphot (image.fits) (output.fits) (config)\n");
+    fprintf (stderr, "USAGE: psphot (image) (output) (config)\n");
     fprintf (stderr, "options: \n");
-    fprintf (stderr, "  --mask  (filename)\n");
-    fprintf (stderr, "  --noise (filename)\n");
+    fprintf (stderr, "  -mask  (filename)\n");
+    fprintf (stderr, "  -noise (filename)\n");
+    fprintf (stderr, "  -diff  (filename)\n");
     exit (2);
 }
