Index: trunk/psModules/src/objects/pmGrowthCurveGenerate.c
===================================================================
--- trunk/psModules/src/objects/pmGrowthCurveGenerate.c	(revision 36856)
+++ trunk/psModules/src/objects/pmGrowthCurveGenerate.c	(revision 41534)
@@ -87,5 +87,11 @@
 	}
     }
-    psAssert (growths->n, "cannot build growth curve (psf model is invalid everywhere)");
+    // psAssert (growths->n, "cannot build growth curve (psf model is invalid everywhere)");
+    // if we cannot generate a curve-of-growth, warn but do not raise an error or abort
+    if (!growths->n) {
+      psWarning ("cannot build growth curve (psf model is invalid everywhere)");
+      psFree (growths);
+      return false;
+    }
 
     // just use a simple sample median to get the 'best' value from each growth curve...
@@ -102,5 +108,9 @@
     }
     if (!psVectorStats (stats, values, NULL, NULL, 0)) {
-	psError(PS_ERR_UNKNOWN, false, "failure to measure stats");
+	// if we cannot generate a curve-of-growth, warn but do not raise an error or abort
+	psWarning("failure to measure stats for curve of growth");
+	psFree (growths);
+	psFree (stats);
+	psFree (values);
 	return false;
     }
@@ -120,5 +130,9 @@
 	}
 	if (!psVectorStats (stats, values, NULL, NULL, 0)) {
-	    psError(PS_ERR_UNKNOWN, false, "failure to measure stats");
+	    // psError(PS_ERR_UNKNOWN, false, "failure to measure stats");
+	    psWarning("failure to measure stats for curve of growth");
+	    psFree (growths);
+	    psFree (stats);
+	    psFree (values);
 	    return false;
 	}
@@ -290,5 +304,9 @@
 	} else {
 	    if (!psVectorStats (stats, values, NULL, NULL, 0)) {
-		psError(PS_ERR_UNKNOWN, false, "failure to measure stats");
+		// psError(PS_ERR_UNKNOWN, false, "failure to measure stats");
+		psWarning("failure to measure stats for curve of growth (from sources)");
+		psFree (growths);
+		psFree (stats);
+		psFree (values);
 		return false;
 	    }
