Index: /branches/eam_branch_20081124/Ohana/src/addstar/include/addstar.h
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/addstar/include/addstar.h	(revision 20905)
+++ /branches/eam_branch_20081124/Ohana/src/addstar/include/addstar.h	(revision 20906)
@@ -87,4 +87,6 @@
 char   STKeyword[64];
 char   ExtnameKeyword[64];
+char   ImageIDKeyword[64];
+char   SourceIDKeyword[64];
 
 /* these globals modify the behavior of gstars (KEEP) */
Index: /branches/eam_branch_20081124/Ohana/src/addstar/src/ConfigInit.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/addstar/src/ConfigInit.c	(revision 20905)
+++ /branches/eam_branch_20081124/Ohana/src/addstar/src/ConfigInit.c	(revision 20906)
@@ -67,4 +67,7 @@
   ScanConfig (config, "OBSERVATORY-LONGITUDE",  "%lf", 0, &Longitude);
   ScanConfig (config, "SUBPIX_DATAFILE",        "%s",  0, SubpixDatafile);
+
+  ScanConfig (config, "IMAGE-ID-KEYWORD",       "%s",  0, ImageIDKeyword);
+  ScanConfig (config, "SOURCE-ID-KEYWORD",      "%s",  0, SourceIDKeyword);
 
   if (!ScanConfig (config, "EXTNAME-KEYWORD",        "%s",  0, ExtnameKeyword)) {
Index: /branches/eam_branch_20081124/Ohana/src/addstar/src/ReadImageHeader.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/addstar/src/ReadImageHeader.c	(revision 20905)
+++ /branches/eam_branch_20081124/Ohana/src/addstar/src/ReadImageHeader.c	(revision 20906)
@@ -5,5 +5,5 @@
 int ReadImageHeader (Header *header, Image *image, int photcode) {
 
-  int Nastro, ccdnum, hour, min, Nx, Ny, haveNx, haveNy;
+  int Nastro, ccdnum, hour, min, Nx, Ny, haveNx, haveNy, sourceID;
   double tmp, sec, Cerror, ZeroPt, FWHM_X, FWHM_Y;
   char *c, photname[64], line[80];
@@ -178,4 +178,17 @@
   }
 
+  if (!gfits_scan (header, ImageIDKeyword, "%d", 1, &image[0].externID)) {
+    image[0].externID = 0;
+  }
+  if (!gfits_scan (header, SourceIDKeyword, "%d", 1, &sourceID)) {
+    image[0].sourceID = 0;
+  } else {
+    if (sourceID > 0xffff) {
+      fprintf (stderr, "image source ID is surprisingly large: %d, skipping\n", sourceID); 
+      return (FALSE);
+    }
+    image[0].sourceID = sourceID;
+  }
+
   gfits_scan (header, "ZERO_PT", "%lf", 1, &ZeroPt);
   if (ZeroPt != GetZeroPoint()) {
Index: /branches/eam_branch_20081124/Ohana/src/addstar/src/find_matches.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/addstar/src/find_matches.c	(revision 20905)
+++ /branches/eam_branch_20081124/Ohana/src/addstar/src/find_matches.c	(revision 20906)
@@ -193,5 +193,5 @@
 
       catalog[0].measure[Nmeas].detID     = stars[N].detID;
-      catalog[0].measure[Nmeas].imageID   = options.imageID;
+      catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
       catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
Index: /branches/eam_branch_20081124/Ohana/src/addstar/src/find_matches_closest.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/addstar/src/find_matches_closest.c	(revision 20905)
+++ /branches/eam_branch_20081124/Ohana/src/addstar/src/find_matches_closest.c	(revision 20906)
@@ -215,5 +215,5 @@
 
     catalog[0].measure[Nmeas].detID     = stars[N].detID;
-    catalog[0].measure[Nmeas].imageID   = options.imageID;
+    catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
     catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
@@ -327,5 +327,5 @@
 
     catalog[0].measure[Nmeas].detID     = stars[N].detID;
-    catalog[0].measure[Nmeas].imageID   = options.imageID;
+    catalog[0].measure[Nmeas].imageID   = stars[N].imageID;
 
     catalog[0].measure[Nmeas].dXccd     = stars[N].dX;
