Index: trunk/Ohana/src/addstar/include/addstar.h
===================================================================
--- trunk/Ohana/src/addstar/include/addstar.h	(revision 18326)
+++ trunk/Ohana/src/addstar/include/addstar.h	(revision 18374)
@@ -129,4 +129,5 @@
 SkyRegion UserPatch;  // used by MODE CAT
 char     *SELECT_2MASS_QUALITY;  // used only by get2mass_as
+int NREFSTAR_GROUP;
 
 /*** addstar prototypes ***/
Index: trunk/Ohana/src/addstar/src/args.c
===================================================================
--- trunk/Ohana/src/addstar/src/args.c	(revision 18326)
+++ trunk/Ohana/src/addstar/src/args.c	(revision 18374)
@@ -6,4 +6,7 @@
   int i, N;
   int QUALITY_AIRMASS;
+
+  // a global used by find_matches_refstars.c (value is 1 except for load2mass)
+  NREFSTAR_GROUP = 1;
 
   /* check for help request */
Index: trunk/Ohana/src/addstar/src/args_client.c
===================================================================
--- trunk/Ohana/src/addstar/src/args_client.c	(revision 18326)
+++ trunk/Ohana/src/addstar/src/args_client.c	(revision 18374)
@@ -11,4 +11,7 @@
     help ();
   }
+
+  // a global used by find_matches_refstars.c (value is 1 except for load2mass)
+  NREFSTAR_GROUP = 1;
 
   /*** check for command line options ***/
Index: trunk/Ohana/src/addstar/src/args_load2mass.c
===================================================================
--- trunk/Ohana/src/addstar/src/args_load2mass.c	(revision 18326)
+++ trunk/Ohana/src/addstar/src/args_load2mass.c	(revision 18374)
@@ -11,4 +11,7 @@
     help ();
   }
+
+  // a global used by find_matches_refstars.c (value is 1 except for load2mass)
+  NREFSTAR_GROUP = 3;
 
   /*** check for command line options ***/
Index: trunk/Ohana/src/addstar/src/args_sedstar.c
===================================================================
--- trunk/Ohana/src/addstar/src/args_sedstar.c	(revision 18326)
+++ trunk/Ohana/src/addstar/src/args_sedstar.c	(revision 18374)
@@ -11,4 +11,7 @@
     help ();
   }
+
+  // a global used by find_matches_refstars.c (value is 1 except for load2mass)
+  NREFSTAR_GROUP = 1;
 
   /*** check for command line options ***/
Index: trunk/Ohana/src/addstar/src/args_server.c
===================================================================
--- trunk/Ohana/src/addstar/src/args_server.c	(revision 18326)
+++ trunk/Ohana/src/addstar/src/args_server.c	(revision 18374)
@@ -11,4 +11,7 @@
     help ();
   }
+
+  // a global used by find_matches_refstars.c (value is 1 except for load2mass)
+  NREFSTAR_GROUP = 1;
 
   /* restrict to a portion of the sky? (REFCAT only) */
Index: trunk/Ohana/src/addstar/src/find_matches_refstars.c
===================================================================
--- trunk/Ohana/src/addstar/src/find_matches_refstars.c	(revision 18326)
+++ trunk/Ohana/src/addstar/src/find_matches_refstars.c	(revision 18374)
@@ -14,4 +14,9 @@
   Coords tcoords;
   int Nsecfilt;
+
+  if ((NREFSTAR_GROUP != 1) && (NREFSTAR_GROUP != 3)) {
+      fprintf (stderr, "ERROR: NREFSTAR_GROUP NOT SET!\n");
+      exit (1);
+  }
 
   /* photcode data -- should not have to modify secfilt / average */
@@ -98,4 +103,5 @@
 
   /** find matched stars **/
+  // XXX could use NREFSTAR_GROUP to do this match more quicky
   for (i = j = 0; (i < Nstars) && (j < Nave); ) {
     
@@ -225,5 +231,5 @@
      the reference up-to-date with known stars only */
 
-  for (i = 0; (i < Nstars) && !options.only_match; i++) {
+  for (i = 0; (i < Nstars) && !options.only_match; i+=NREFSTAR_GROUP) {
     N = N1[i];
     if (stars[N][0].found >= 0) continue;
@@ -232,5 +238,5 @@
     catalog[0].average[Nave].D         	   = stars[N][0].D;
     catalog[0].average[Nave].Xp        	   = 0;
-    catalog[0].average[Nave].Nmeasure      = 1;
+    catalog[0].average[Nave].Nmeasure      = NREFSTAR_GROUP;
     catalog[0].average[Nave].Nmissing      = 0;
     catalog[0].average[Nave].measureOffset = Nmeas;
@@ -268,54 +274,58 @@
     }
 
-    catalog[0].measure[Nmeas].dR       = 0.0;
-    catalog[0].measure[Nmeas].dD       = 0.0;
-    catalog[0].measure[Nmeas].M        = stars[N][0].M;
-    catalog[0].measure[Nmeas].dM       = stars[N][0].dM;
-    catalog[0].measure[Nmeas].Mcal     = 0;
-    catalog[0].measure[Nmeas].t        = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
-    catalog[0].measure[Nmeas].averef   = Nave;
-    catalog[0].measure[Nmeas].photcode = stars[N][0].code;
-    catalog[0].measure[Nmeas].dophot   = 0;
-    catalog[0].measure[Nmeas].dbFlags  = 0;
-    catalog[0].measure[Nmeas].dt       = 0xffff;
-
-    catalog[0].measure[Nmeas].photFlags = stars[N][0].flags; // XXX make sure these are zero'ed as needed
-    catalog[0].measure[Nmeas].qPSF      = 0;
-    catalog[0].measure[Nmeas].psfChisq  = 0;
-    catalog[0].measure[Nmeas].crNsigma  = 0;
-    catalog[0].measure[Nmeas].extNsigma = 0;
-    catalog[0].measure[Nmeas].Sky       = 0;
-    catalog[0].measure[Nmeas].dSky      = 0;
-
-    catalog[0].measure[Nmeas].stargal   = 0; // XXX not yet set
-
-    catalog[0].measure[Nmeas].detID     = 0;
-    catalog[0].measure[Nmeas].imageID   = 0;
-
-    catalog[0].measure[Nmeas].dXccd     = 0;
-    catalog[0].measure[Nmeas].dYccd     = 0;
-
-    catalog[0].measure[Nmeas].Xccd     = stars[N][0].X; // XXX make sure these are zero'ed as needed
-    catalog[0].measure[Nmeas].Yccd     = stars[N][0].Y; // XXX make sure these are zero'ed as needed
-
-    catalog[0].measure[Nmeas].airmass  = 0;
-    catalog[0].measure[Nmeas].Map      = NAN;
-    catalog[0].measure[Nmeas].FWx      = stars[N][0].fx; // XXX make sure these are zero'ed as needed
-    catalog[0].measure[Nmeas].FWy      = stars[N][0].fy; // XXX make sure these are zero'ed as needed
-    catalog[0].measure[Nmeas].theta    = stars[N][0].df; // XXX make sure these are zero'ed as needed
-
-    catalog[0].measure[Nmeas].Xccd     = 0.0;
-    catalog[0].measure[Nmeas].Yccd     = 0.0;
-
-    stars[N][0].found = Nmeas;
-    next[last] = Nmeas;
-    next[Nmeas] = -1;
-    last = Nmeas;
-    Nmeas ++;
-    if (Nmeas == NMEAS) {
-      NMEAS = Nmeas + 1000;
-      REALLOCATE (next, int, NMEAS);
-      REALLOCATE (catalog[0].measure, Measure, NMEAS);
-    }
+    for (j = 0; j < NREFSTAR_GROUP; j++) {
+      N = N1[i + j];
+      catalog[0].measure[Nmeas].dR       = 0.0;
+      catalog[0].measure[Nmeas].dD       = 0.0;
+      catalog[0].measure[Nmeas].M        = stars[N][0].M;
+      catalog[0].measure[Nmeas].dM       = stars[N][0].dM;
+      catalog[0].measure[Nmeas].Mcal     = 0;
+      catalog[0].measure[Nmeas].t        = (stars[N][0].t == 0) ? TIMEREF : stars[N][0].t; /** careful : time_t vs e_time **/
+      catalog[0].measure[Nmeas].averef   = Nave;
+      catalog[0].measure[Nmeas].photcode = stars[N][0].code;
+      catalog[0].measure[Nmeas].dophot   = 0;
+      catalog[0].measure[Nmeas].dbFlags  = 0;
+      catalog[0].measure[Nmeas].dt       = 0xffff;
+
+      catalog[0].measure[Nmeas].photFlags = stars[N][0].flags; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].qPSF      = 0;
+      catalog[0].measure[Nmeas].psfChisq  = 0;
+      catalog[0].measure[Nmeas].crNsigma  = 0;
+      catalog[0].measure[Nmeas].extNsigma = 0;
+      catalog[0].measure[Nmeas].Sky       = 0;
+      catalog[0].measure[Nmeas].dSky      = 0;
+
+      catalog[0].measure[Nmeas].stargal   = 0; // XXX not yet set
+
+      catalog[0].measure[Nmeas].detID     = 0;
+      catalog[0].measure[Nmeas].imageID   = 0;
+
+      catalog[0].measure[Nmeas].dXccd     = 0;
+      catalog[0].measure[Nmeas].dYccd     = 0;
+
+      catalog[0].measure[Nmeas].Xccd     = stars[N][0].X; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].Yccd     = stars[N][0].Y; // XXX make sure these are zero'ed as needed
+
+      catalog[0].measure[Nmeas].airmass  = 0;
+      catalog[0].measure[Nmeas].Map      = NAN;
+      catalog[0].measure[Nmeas].FWx      = stars[N][0].fx; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].FWy      = stars[N][0].fy; // XXX make sure these are zero'ed as needed
+      catalog[0].measure[Nmeas].theta    = stars[N][0].df; // XXX make sure these are zero'ed as needed
+
+      catalog[0].measure[Nmeas].Xccd     = 0.0;
+      catalog[0].measure[Nmeas].Yccd     = 0.0;
+
+      stars[N][0].found = Nmeas;
+      next[last] = Nmeas;
+      next[Nmeas] = -1;
+      last = Nmeas;
+      Nmeas ++;
+      if (Nmeas == NMEAS) {
+	NMEAS = Nmeas + 1000;
+	REALLOCATE (next, int, NMEAS);
+	REALLOCATE (catalog[0].measure, Measure, NMEAS);
+      }
+    }
+
     Nave ++;
     if (Nave == NAVE) {
