Index: trunk/psphot/src/pmModelFitSet.c
===================================================================
--- trunk/psphot/src/pmModelFitSet.c	(revision 6481)
+++ trunk/psphot/src/pmModelFitSet.c	(revision 6495)
@@ -38,20 +38,28 @@
     psF32 *dPAR = oneDeriv->data.F32;
 
+    psF32 *pars = params->data.F32;
+    psF32 *dpars = (deriv == NULL) ? NULL : deriv->data.F32;
+
     int nSrc = (params->n - 1) / (nPar - 1);
 
-    model = params->data.F32[0];
-
-    PAR[0] = params->data.F32[0];
+    PAR[0] = model = pars[0];
     for (int i = 0; i < nSrc; i++) {
+	int nOff = i*nPar - i;
 	for (int n = 1; n < nPar; n++) {
-	    PAR[n] = params->data.F32[i*nPar - i + n];
+	    PAR[n] = pars[nOff + n];
 	}
-	value = mFunc (oneDeriv, onePar, x);
+	if (deriv == NULL) {
+	    value = mFunc (NULL, onePar, x);
+	} else {
+	    value = mFunc (oneDeriv, onePar, x);
+	    for (int n = 1; n < nPar; n++) {
+		dpars[nOff + n] = dPAR[n];
+	    }
+	}
 	model += value;
-	for (int n = 1; n < nPar; n++) {
-	    deriv->data.F32[i*nPar - i + n] = dPAR[n];
-	}
     }
-    deriv->data.F32[0] = dPAR[0]*2.0;
+    if (deriv != NULL) {
+	dpars[0] = dPAR[0]*2.0;
+    }
     return (model);
 }
