Index: trunk/psModules/src/objects/pmPSFtry.c
===================================================================
--- trunk/psModules/src/objects/pmPSFtry.c	(revision 18581)
+++ trunk/psModules/src/objects/pmPSFtry.c	(revision 18857)
@@ -5,6 +5,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.58 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2008-07-16 23:06:10 $
+ *  @version $Revision: 1.59 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2008-08-01 22:11:51 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -138,5 +138,5 @@
         status = pmSourceFitModel (source, source->modelEXT, PM_SOURCE_FIT_EXT, maskVal);
 
-	// clear object mask to define valid pixels
+        // clear object mask to define valid pixels
         psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
 
@@ -152,4 +152,10 @@
     psTrace ("psphot.psftry", 3, "keeping %d of %ld PSF candidates (EXT)\n", Next, sources->n);
 
+    if (Next == 0) {
+        psError(PS_ERR_UNKNOWN, true, "No sources with good extended fits from which to determine PSF.");
+        psFree(psfTry);
+        return NULL;
+    }
+
     // stage 2: construct a psf (pmPSF) from this collection of model fits
     if (!pmPSFFromPSFtry (psfTry)) {
@@ -169,5 +175,5 @@
             psTrace ("psModules.objects", 4, "dropping %d (%d,%d) : source is masked\n", i, source->peak->x, source->peak->y);
             continue;
-	}
+        }
 
         // set shape for this model based on PSF
@@ -188,5 +194,5 @@
         // skip poor fits
         if (!status) {
-	    psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
+            psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
             psfTry->mask->data.U8[i] = PSFTRY_MASK_PSF_FAIL;
             psTrace ("psModules.objects", 4, "dropping %d (%d,%d) : failed PSF fit\n", i, source->peak->x, source->peak->y);
@@ -195,6 +201,6 @@
 
         status = pmSourceMagnitudes (source, psfTry->psf, PM_SOURCE_PHOT_INTERP, maskVal);
-	if (!status || isnan(source->apMag)) {
-	    psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
+        if (!status || isnan(source->apMag)) {
+            psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
             psfTry->mask->data.U8[i] = PSFTRY_MASK_BAD_PHOT;
             psTrace ("psModules.objects", 4, "dropping %d (%d,%d) : poor photometry\n", i, source->peak->x, source->peak->y);
@@ -202,5 +208,5 @@
         }
 
-	// clear object mask to define valid pixels
+        // clear object mask to define valid pixels
         psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "AND", PS_NOT_U8(markVal));
 
@@ -209,5 +215,5 @@
         psfTry->metricErr->data.F32[i] = source->errMag;
 
-	psTrace ("psphot.psftry", 6, "keeping source %d (%d) of %ld\n", i, Npsf, psfTry->sources->n);
+        psTrace ("psphot.psftry", 6, "keeping source %d (%d) of %ld\n", i, Npsf, psfTry->sources->n);
         Npsf ++;
     }
@@ -268,5 +274,5 @@
     if (!pmPSFtryMetric (psfTry, options)) {
         psError(PS_ERR_UNKNOWN, false, "Attempt to fit PSF with model %s failed.", modelName);
-	psFree (psfTry);
+        psFree (psfTry);
         return NULL;
     }
