Index: /branches/eam_branches/ipp-20101205/Ohana/src/relastro/include/relastro.h
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/relastro/include/relastro.h	(revision 30523)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/relastro/include/relastro.h	(revision 30524)
@@ -146,4 +146,5 @@
 int FlagOutlier;
 int    CLIP_THRESH;
+int USE_BASIC_CHECK;
 
 FitMode FIT_MODE;
Index: /branches/eam_branches/ipp-20101205/Ohana/src/relastro/src/args.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/relastro/src/args.c	(revision 30523)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/relastro/src/args.c	(revision 30524)
@@ -93,4 +93,10 @@
       usage ();
     }
+  }
+
+  USE_BASIC_CHECK = FALSE;
+  if ((N = get_argument (argc, argv, "-basic-image-search"))) {
+    remove_argument (N, &argc, argv);
+    USE_BASIC_CHECK = TRUE;
   }
 
Index: /branches/eam_branches/ipp-20101205/Ohana/src/relastro/src/select_images.c
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/relastro/src/select_images.c	(revision 30523)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/relastro/src/select_images.c	(revision 30524)
@@ -202,4 +202,7 @@
     if (RmaxImage < RminSkyRegion) continue;
 
+    // image overlaps region, keep it
+    if (USE_BASIC_CHECK) goto found_it;
+
     // RA(nStart) is guaranteed to be < RminImage:
     nStart = getRegionStartByRA (RminImage, RmaxSky, skylist[0].Nregions);
@@ -224,8 +227,10 @@
       for (j = 0; (j < 4) && !found; j++) {
 	found = corner_check (&Xi[j], &Yi[j], &skycoords[m].Xc[0], &skycoords[m].Yc[0]);
+	if (found) goto found_it;
       }
       /* check if catalog corner inside image */
       for (j = 0; (j < 4) && !found; j++) {
 	found = corner_check (&skycoords[m].Xc[j], &skycoords[m].Yc[j], &Xi[0], &Yi[0]);
+	if (found) goto found_it;
       }
       /* check if edges cross */
@@ -233,27 +238,29 @@
 	for (k = 0; (k < 4) && !found; k++) {
 	  found = edge_check (&Xi[j], &Yi[j], &skycoords[m].Xc[k], &skycoords[m].Yc[k]);
+	if (found) goto found_it;
 	}
       }
-      if (!found) continue;
-
-      image[nimage] = timage[i]; 
-      /* always allow 'few' images to succeed, if possible */
-      if (image[nimage].flags & ID_IMAGE_ASTROM_FEW) { 
-	image[nimage].flags &= ~ID_IMAGE_ASTROM_FEW;
-      }
-      if (RESET) {
-	// XXX do we need / want to do this in relastro?
-	// assignMcal (&image[nimage], (double *) NULL, -1);
-	// image[nimage].Mcal = NAN;
-	// image[nimage].dMcal = NAN;
-	image[nimage].flags &= ~badImage;
-      }
-      line_number[nimage] = i;
-      nimage ++;
-      if (nimage == NIMAGE) {
-	NIMAGE += 100;
-	REALLOCATE (image, Image, NIMAGE);
-	REALLOCATE (line_number, off_t, NIMAGE);
-      }
+    }
+    if (!found) continue;
+
+  found_it:
+    image[nimage] = timage[i]; 
+    /* always allow 'few' images to succeed, if possible */
+    if (image[nimage].flags & ID_IMAGE_ASTROM_FEW) { 
+      image[nimage].flags &= ~ID_IMAGE_ASTROM_FEW;
+    }
+    if (RESET) {
+      // XXX do we need / want to do this in relastro?
+      // assignMcal (&image[nimage], (double *) NULL, -1);
+      // image[nimage].Mcal = NAN;
+      // image[nimage].dMcal = NAN;
+      image[nimage].flags &= ~badImage;
+    }
+    line_number[nimage] = i;
+    nimage ++;
+    if (nimage == NIMAGE) {
+      NIMAGE += 100;
+      REALLOCATE (image, Image, NIMAGE);
+      REALLOCATE (line_number, off_t, NIMAGE);
     }
   }
