Index: /trunk/psModules/src/objects/models/pmModel_GAUSS.c
===================================================================
--- /trunk/psModules/src/objects/models/pmModel_GAUSS.c	(revision 10180)
+++ /trunk/psModules/src/objects/models/pmModel_GAUSS.c	(revision 10181)
@@ -14,6 +14,6 @@
  * PM_PAR_XPOS 2  - X center of object
  * PM_PAR_YPOS 3  - Y center of object
- * PM_PAR_SXX 4   - X^2 term of elliptical contour (sqrt(2) / SigmaX)
- * PM_PAR_SYY 5   - Y^2 term of elliptical contour (sqrt(2) / SigmaY)
+ * PM_PAR_SXX 4   - X^2 term of elliptical contour (sqrt(2) * SigmaX)
+ * PM_PAR_SYY 5   - Y^2 term of elliptical contour (sqrt(2) * SigmaY)
  * PM_PAR_SXY 6   - X*Y term of elliptical contour
  *****************************************************************************/
@@ -95,7 +95,17 @@
 bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
 {
-
     pmMoments *moments = source->moments;
     psF32     *PAR  = model->params->data.F32;
+
+    # if (0)
+
+        psEllipseMoments emoments;
+    emoments.x2 = moments->Sx;
+    emoments.y2 = moments->Sx;
+    emoments.xy = moments->Sxy;
+
+    psEllipseAxes axes = psEllipseMomentsToAxes (emoments);
+    psEllipseShape shape = psEllipseAxesToShape (axes);
+    # endif
 
     PAR[PM_PAR_SKY] = moments->Sky;
@@ -103,7 +113,14 @@
     PAR[PM_PAR_XPOS] = moments->x;
     PAR[PM_PAR_YPOS] = moments->y;
-    PAR[PM_PAR_SXX] = PS_MAX(0.5, moments->Sx);
-    PAR[PM_PAR_SYY] = PS_MAX(0.5, moments->Sy);
+    PAR[PM_PAR_SXX] = PS_MAX(0.5, M_SQRT2*moments->Sx);
+    PAR[PM_PAR_SYY] = PS_MAX(0.5, M_SQRT2*moments->Sy);
     PAR[PM_PAR_SXY] = 0.0;
+    # if (0)
+
+        PAR[PM_PAR_SXX] = PS_MAX(0.5, M_SQRT2*shape.sx);
+    PAR[PM_PAR_SYY] = PS_MAX(0.5, M_SQRT2*shape.sy);
+    PAR[PM_PAR_SXY] = shape.sxy;
+    # endif
+
     return(true);
 }
Index: /trunk/psModules/src/objects/models/pmModel_PGAUSS.c
===================================================================
--- /trunk/psModules/src/objects/models/pmModel_PGAUSS.c	(revision 10180)
+++ /trunk/psModules/src/objects/models/pmModel_PGAUSS.c	(revision 10181)
@@ -14,6 +14,6 @@
  * PM_PAR_XPOS 2  - X center of object
  * PM_PAR_YPOS 3  - Y center of object
- * PM_PAR_SXX 4   - X^2 term of elliptical contour (sqrt(2) / SigmaX)
- * PM_PAR_SYY 5   - Y^2 term of elliptical contour (sqrt(2) / SigmaY)
+ * PM_PAR_SXX 4   - X^2 term of elliptical contour (sqrt(2) * SigmaX)
+ * PM_PAR_SYY 5   - Y^2 term of elliptical contour (sqrt(2) * SigmaY)
  * PM_PAR_SXY 6   - X*Y term of elliptical contour
  *****************************************************************************/
@@ -51,6 +51,6 @@
         dPAR[PM_PAR_YPOS] = q*(2.0*py/PAR[PM_PAR_SYY] + X*PAR[PM_PAR_SXY]);
         // the extra factor of 2 below is needed to avoid excessive swings
-        dPAR[PM_PAR_SXX] =  +4.0*q*px*px/PAR[PM_PAR_SXX];
-        dPAR[PM_PAR_SYY] =  +4.0*q*py*py/PAR[PM_PAR_SYY];
+        dPAR[PM_PAR_SXX] =  +2.0*q*px*px/PAR[PM_PAR_SXX];
+        dPAR[PM_PAR_SYY] =  +2.0*q*py*py/PAR[PM_PAR_SYY];
         dPAR[PM_PAR_SXY] = -q*X*Y;
     }
@@ -95,15 +95,32 @@
 bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
 {
-
     pmMoments *moments = source->moments;
     psF32     *PAR     = model->params->data.F32;
 
+    # if (0)
+
+        psEllipseMoments emoments;
+    emoments.x2 = moments->Sx;
+    emoments.y2 = moments->Sx;
+    emoments.xy = moments->Sxy;
+
+    psEllipseAxes axes = psEllipseMomentsToAxes (emoments);
+    psEllipseShape shape = psEllipseAxesToShape (axes);
+    # endif
+
     PAR[PM_PAR_SKY]  = moments->Sky;
     PAR[PM_PAR_I0]   = moments->Peak - moments->Sky;
-    PAR[PM_PAR_XPOS] = moments->x;
+    PAR[PM_PAR_XPOS] = moments->x; // XXX use peak->xf, peak->yf?
     PAR[PM_PAR_YPOS] = moments->y;
-    PAR[PM_PAR_SXX] = PS_MAX(0.5, moments->Sx);
-    PAR[PM_PAR_SYY] = PS_MAX(0.5, moments->Sy);
-    PAR[PM_PAR_SXY]  = 0.0;
+    PAR[PM_PAR_SXX] = PS_MAX(0.5, M_SQRT2*moments->Sx);
+    PAR[PM_PAR_SYY] = PS_MAX(0.5, M_SQRT2*moments->Sy);
+    PAR[PM_PAR_SXY] = 0.0;
+
+    # if (0)
+
+        PAR[PM_PAR_SXX] = PS_MAX(0.5, M_SQRT2*shape.sx);
+    PAR[PM_PAR_SYY] = PS_MAX(0.5, M_SQRT2*shape.sy);
+    PAR[PM_PAR_SXY] = shape.sxy;
+    # endif
 
     return(true);
