Index: trunk/psModules/src/objects/pmSource.c
===================================================================
--- trunk/psModules/src/objects/pmSource.c	(revision 19987)
+++ trunk/psModules/src/objects/pmSource.c	(revision 20010)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA: significant modifications.
  *
- *  @version $Revision: 1.61 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2008-10-08 04:23:31 $
+ *  @version $Revision: 1.62 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2008-10-09 00:58:39 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -347,4 +347,11 @@
             float ar = Mxx / Myy;       // Radius
 
+            if (!isfinite(Mxx) || !isfinite(Myy)) {
+                psTrace("psModules.objects", 10,
+                        "Rejecting source from clump because of non-finite moments (%f,%f)\n",
+                        Mxx, Myy);
+                continue;
+            }
+
             // Sx,Sy are limited at 0.  a peak at 0,0 is artificial
             if (fabs(Mxx) < 0.05 || fabs(Myy < 0.05)) {
@@ -612,25 +619,25 @@
 
     if (starsn_moments->n) {
-	psStats *stats = NULL;
-	stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX);
-
-	if (!psVectorStats (stats, starsn_moments, NULL, NULL, 0)) {
-	    // Don't care about this error
-	    psErrorClear();
-	}
-	psLogMsg ("pmObjects", 3, "SN range (moments): %f - %f\n", stats->min, stats->max);
-	psFree (stats);
+        psStats *stats = NULL;
+        stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX);
+
+        if (!psVectorStats (stats, starsn_moments, NULL, NULL, 0)) {
+            // Don't care about this error
+            psErrorClear();
+        }
+        psLogMsg ("pmObjects", 3, "SN range (moments): %f - %f\n", stats->min, stats->max);
+        psFree (stats);
     }
     psFree (starsn_moments);
 
     if (starsn_peaks->n) {
-	psStats *stats = NULL;
-	stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX);
-	if (!psVectorStats (stats, starsn_peaks, NULL, NULL, 0)) {
-	    // Don't care about this error
-	    psErrorClear();
-	}
-	psLogMsg ("pmObjects", 3, "SN range (peaks)  : %f - %f\n", stats->min, stats->max);
-	psFree (stats);
+        psStats *stats = NULL;
+        stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX);
+        if (!psVectorStats (stats, starsn_peaks, NULL, NULL, 0)) {
+            // Don't care about this error
+            psErrorClear();
+        }
+        psLogMsg ("pmObjects", 3, "SN range (peaks)  : %f - %f\n", stats->min, stats->max);
+        psFree (stats);
     }
     psFree (starsn_peaks);
