Index: trunk/psModules/src/objects/models/pmModel_QGAUSS.c
===================================================================
--- trunk/psModules/src/objects/models/pmModel_QGAUSS.c	(revision 13424)
+++ 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;
+	}
     }
 
