Index: branches/eam_branches/20091113/ippconfig/gpc1/psastro.config
===================================================================
--- branches/eam_branches/20091113/ippconfig/gpc1/psastro.config	(revision 26167)
+++ branches/eam_branches/20091113/ippconfig/gpc1/psastro.config	(revision 26168)
@@ -52,4 +52,7 @@
 PSASTRO.MATCH.RADIUS.N7 F32     5
 PSASTRO.MATCH.FIT.NITER S32     8
+
+# for iterations >= N, require a single match per reference
+PSASTRO.MATCH.UNIQ.ITER S32     4 
 
 # XXX Test for taurus
Index: branches/eam_branches/20091113/ippconfig/recipes/psastro.config
===================================================================
--- branches/eam_branches/20091113/ippconfig/recipes/psastro.config	(revision 26167)
+++ branches/eam_branches/20091113/ippconfig/recipes/psastro.config	(revision 26168)
@@ -64,4 +64,7 @@
 PSASTRO.MATCH.FIT.NITER S32   1
 
+# for iterations >= N, require a single match per reference
+PSASTRO.MATCH.UNIQ.ITER S32     4 
+
 # pmAstromMatchFit
 PSASTRO.CHIP.ORDER     S32      1  # fit order
Index: branches/eam_branches/20091113/psastro/src/psastroOneChipFit.c
===================================================================
--- branches/eam_branches/20091113/psastro/src/psastroOneChipFit.c	(revision 26167)
+++ branches/eam_branches/20091113/psastro/src/psastroOneChipFit.c	(revision 26168)
@@ -28,4 +28,7 @@
     REQUIRED_RECIPE_VALUE (int nIter, "PSASTRO.MATCH.FIT.NITER", S32);
 
+    // for iterations >= uniqIter, require a single match per reference
+    REQUIRED_RECIPE_VALUE (int uniqIter, "PSASTRO.MATCH.UNIQ.ITER", S32);
+
     // correct radius to FP units (physical pixel scale in microns per pixel)
     REQUIRED_RECIPE_VALUE (double pixelScale, "PSASTRO.PIXEL.SCALE", F32);
@@ -61,4 +64,11 @@
             return false;
         }
+
+	if (iter >= uniqIter) {
+	  if (!pmAstromRadiusMatchUniq (rawstars, refstars, match)) {
+            psLogMsg ("psastro", 3, "failed to generate a uniq find radius-matched sources\n");
+            return false;
+	  }
+	}
 
         // modify the order to correspond to the actual number of matched stars:
@@ -101,5 +111,5 @@
         }
 
-        // XXX allow statitic to be set by the user
+        // XXX allow statistic to be set by the user
         // fitStats = psStatsAlloc (PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV);
         fitStats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV);
