Index: /branches/eam_branches/20090715/psModules/src/camera/pmReadoutFake.c
===================================================================
--- /branches/eam_branches/20090715/psModules/src/camera/pmReadoutFake.c	(revision 25686)
+++ /branches/eam_branches/20090715/psModules/src/camera/pmReadoutFake.c	(revision 25687)
@@ -97,4 +97,17 @@
                 continue;
             }
+	    // check that all params are valid:
+	    bool validParams = true;
+	    for (int n = 0; validParams && (n < normModel->params->n); n++) {
+		if (n == PM_PAR_SKY) continue;
+		if (n == PM_PAR_I0) continue;
+		if (n == PM_PAR_XPOS) continue;
+		if (n == PM_PAR_YPOS) continue;
+		if (!isfinite(normModel->params->data.F32[n])) validParams = false;
+	    }
+	    if (!validParams) {
+                psFree(normModel);
+		continue;
+	    }		
             if (circularise && !circulariseModel(normModel)) {
                 psError(PS_ERR_UNKNOWN, false, "Unable to circularise PSF model.");
@@ -112,4 +125,17 @@
             continue;
         }
+	// check that all params are valid:
+	bool validParams = true;
+	for (int n = 0; validParams && (n < fakeModel->params->n); n++) {
+	    if (n == PM_PAR_SKY) continue;
+	    if (n == PM_PAR_I0) continue;
+	    if (n == PM_PAR_XPOS) continue;
+	    if (n == PM_PAR_YPOS) continue;
+	    if (!isfinite(fakeModel->params->data.F32[n])) validParams = false;
+	}
+	if (!validParams) {
+	    psFree(fakeModel);
+	    continue;
+	}		
         if (circularise && !circulariseModel(fakeModel)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to circularise PSF model.");
