Index: /trunk/psphot/src/psphotChoosePSF.c
===================================================================
--- /trunk/psphot/src/psphotChoosePSF.c	(revision 10266)
+++ /trunk/psphot/src/psphotChoosePSF.c	(revision 10267)
@@ -288,5 +288,5 @@
     shape.sy  = modelPSF->params->data.F32[PM_PAR_SYY];
     shape.sxy = modelPSF->params->data.F32[PM_PAR_SXY];
-    axes = psEllipseShapeToAxes (shape);
+    axes = psEllipseShapeToAxes (shape, 20.0);
 
     psF64 FWHM_Y = FWHM_X * (axes.minor / axes.major);
@@ -330,5 +330,6 @@
         moments.xy = source->moments->Sxy;
 
-        axes = psEllipseMomentsToAxes (moments);
+	// limit axis ratio < 20.0
+        axes = psEllipseMomentsToAxes (moments, 20.0);
 
         FWHM_X += axes.major * 2.35;
Index: /trunk/psphot/src/psphotModelTest.c
===================================================================
--- /trunk/psphot/src/psphotModelTest.c	(revision 10266)
+++ /trunk/psphot/src/psphotModelTest.c	(revision 10267)
@@ -107,5 +107,5 @@
     moments.y2 = source->moments->Sy;
     moments.xy = source->moments->Sxy;
-    psEllipseAxes axes = psEllipseMomentsToAxes (moments);
+    psEllipseAxes axes = psEllipseMomentsToAxes (moments, 20.0);
 
     fprintf (stderr, "axes: %f @ (%f, %f)\n", axes.theta*180/M_PI, axes.major, axes.minor);
@@ -147,5 +147,5 @@
     shape.sy  = 1.4 / model->params->data.F32[5];
     shape.sxy = model->params->data.F32[6];
-    axes = psEllipseShapeToAxes (shape);
+    axes = psEllipseShapeToAxes (shape, 20.0);
 
     fprintf (stderr, "guess: %f @ (%f, %f)\n", axes.theta*180/M_PI, axes.major, axes.minor);
