Index: trunk/psModules/src/objects/models/pmModel_QGAUSS.c
===================================================================
--- trunk/psModules/src/objects/models/pmModel_QGAUSS.c	(revision 13527)
+++ trunk/psModules/src/objects/models/pmModel_QGAUSS.c	(revision 13567)
@@ -88,5 +88,8 @@
         f2 = 1.0 / PS_SQR(params[PM_PAR_SYY]) - 1.0 / PS_SQR(params[PM_PAR_SXX]);
         q1 = PS_SQR(f1)*AR_RATIO - PS_SQR(f2);
-        assert (q1 > 0);
+        if (q1 <= 0) {
+	    psError(PM_ERR_PSF, true, "Q1 < 0 (%g)", q1);
+	    return false;
+	}
         q2  = 0.5*sqrt (q1);
     }
@@ -124,4 +127,6 @@
         if (fabs(beta[nParam]) > fabs(beta_lim)) {
             beta[nParam] = (beta[nParam] > 0) ? fabs(beta_lim) : -fabs(beta_lim);
+	    psError(PM_ERR_PSF, true, "|beta[nParam==%d]| > |beta_lim|; %g v. %g",
+		    nParam, beta[nParam], beta_lim);
             return false;
         }
@@ -158,4 +163,6 @@
         if (params[nParam] < params_min) {
             params[nParam] = params_min;
+	    psError(PM_ERR_PSF, true, "params[nParam==%d] < params_min; %g v. %g",
+		    nParam, params[nParam], params_min);
             return false;
         }
@@ -192,4 +199,6 @@
         if (params[nParam] > params_max) {
             params[nParam] = params_max;
+	    psError(PM_ERR_PSF, true, "params[nParam==%d] > params_max; %g v. %g",
+		    nParam, params[nParam], params_max);
             return false;
         }
@@ -362,6 +371,11 @@
         if (psf->params_NEW->data[i] == NULL)
             continue;
-        PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MIN, i, out, NULL);
-        PM_MODEL_LIMITS (PS_MINIMIZE_PARAM_MAX, i, out, NULL);
+
+        if (!PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MIN, i, out, NULL) ||
+	    !PM_MODEL_LIMITS(PS_MINIMIZE_PARAM_MAX, i, out, NULL)) {
+	    psError(PM_ERR_PSF, false, "Setting limits at (r,c) = (%.1f, %.1f)",
+		    in[PM_PAR_XPOS], in[PM_PAR_YPOS]);
+	    return false;
+	}
     }
 
Index: trunk/psModules/src/objects/pmSource.h
===================================================================
--- trunk/psModules/src/objects/pmSource.h	(revision 13527)
+++ trunk/psModules/src/objects/pmSource.h	(revision 13567)
@@ -3,6 +3,6 @@
  * @author EAM, IfA; GLG, MHPCC
  *
- * @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-04-26 01:20:29 $
+ * @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2007-05-31 12:30:19 $
  * Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  */
@@ -47,4 +47,5 @@
     PM_SOURCE_MODE_TEMPSUB    = 0x0800, ///< XXX get me a better name!
     PM_SOURCE_MODE_EXTERNAL   = 0x1000, ///< XXX get me a better name!
+    PM_SOURCE_MODE_BADPSF     = 0x2000, ///< Failed to get good estimate of object's PSF
 } pmSourceMode;
 
