Index: trunk/psphot/src/psphotRoughClass.c
===================================================================
--- trunk/psphot/src/psphotRoughClass.c	(revision 10803)
+++ trunk/psphot/src/psphotRoughClass.c	(revision 11263)
@@ -9,15 +9,20 @@
 
     psfClump = pmSourcePSFClump (sources, recipe);
+    if (psfClump.X < 0) {
+	psError(PSPHOT_ERR_PROG, false, "programming error calling pmSourcePSFClump");
+	return false;
+    }
+    if (!psfClump.X || !psfClump.Y) {
+	psError(PSPHOT_ERR_DATA, true, "Failed to find a valid PSF clump");
+	return false;
+    }
     psLogMsg ("psphot", 3, "psf clump  X,  Y: %f, %f\n", psfClump.X, psfClump.Y);
     psLogMsg ("psphot", 3, "psf clump DX, DY: %f, %f\n", psfClump.dX, psfClump.dY);
 
-    // did we find a valid psfClump?
-    if (!psfClump.X || !psfClump.Y) {
-	psError(PSPHOT_ERR_PSF, true, "Failed to find a valid PSF clump");
+    // group into STAR, COSMIC, EXTENDED, SATURATED, etc.
+    if (!pmSourceRoughClass (sources, recipe, psfClump)) {
+	psError(PSPHOT_ERR_PROG, false, "programming error calling pmSourceRoughClass");
 	return false;
     }
-
-    // group into STAR, COSMIC, EXTENDED, SATURATED, etc.
-    pmSourceRoughClass (sources, recipe, psfClump);
 
     // optional printout of source moments only
