Index: branches/eam_branches/ipp-20130711/psModules/src/objects/pmPCMdata.c
===================================================================
--- branches/eam_branches/ipp-20130711/psModules/src/objects/pmPCMdata.c	(revision 36027)
+++ branches/eam_branches/ipp-20130711/psModules/src/objects/pmPCMdata.c	(revision 36066)
@@ -370,4 +370,14 @@
 	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SKY] = 1;
 	break;
+      case PM_SOURCE_FIT_SHAPE:
+	// fits shape (Sxx, Sxy, Syy) and Io
+	nParams = 5;
+	psVectorInit (pcm->constraint->paramMask, 1);
+	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SKY] = 0;
+	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_I0] = 0;
+	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SXX] = 0;
+	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SXY] = 0;
+	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SYY] = 0;
+	break;
       case PM_SOURCE_FIT_EXT_AND_SKY:
         // EXT model fits all params (including sky)
@@ -389,9 +399,9 @@
 	// PSF model only fits Io, index (PAR7) -- only Io for models with < 8 params
 	psVectorInit (pcm->constraint->paramMask, 0);
-	pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SKY] = 1;
+	// pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SKY] = 1; -- do not fix sky
 	if (model->params->n == 7) {
+	    nParams = model->params->n;
+	} else {
 	    nParams = model->params->n - 1;
-	} else {
-	    nParams = model->params->n - 2;
 	    pcm->constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_7] = 1;
 	}
