Index: trunk/psModules/src/astrom/pmAstrometryModel.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 41286)
+++ trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 41533)
@@ -518,15 +518,13 @@
 
     // convert the toFPA transfomations to fromFPA transformations
-    // we need a higher order transformation to model the inverse transformation
-    // is +4 too large?
-    // XXX EAM : hold off on high-order inverse chip fromFPA
     for (int i = 0; i < file->fpa->chips->n; i++) {
         pmChip *chip = file->fpa->chips->data[i];
         if (!chip->toFPA) continue;
         psRegion *region = pmChipPixels (chip);
+
+	// as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
         psFree (chip->fromFPA);
-//	psPlaneTransform *myPT = psPlaneTransformAlloc(chip->toFPA->x->nX+4, chip->toFPA->x->nY+4);
-	psPlaneTransform *myPT = NULL;
-        chip->fromFPA = psPlaneTransformInvert(myPT, chip->toFPA, *region, 50);
+        chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, 4);
+
         psFree (region);
     }
@@ -586,8 +584,13 @@
 
     psRegion *region = pmAstromFPAExtent (file->fpa);
+
+    // XXX psFree (file->fpa->fromTPA);
+    // XXX psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
+    // XXX file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
+    // XXX psFree (myPT);
+
+    // as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
     psFree (file->fpa->fromTPA);
-    psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
-    file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
-    psFree (myPT);
+    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, 4);
 
     psFree (model);
@@ -735,8 +738,13 @@
     // the inverse transformation requires a higher order model to fit the direct transformation sufficiently well
     psRegion *region = pmAstromFPAExtent (file->fpa);
+
+    // XXX psFree (file->fpa->fromTPA);
+    // XXX psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
+    // XXX file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
+    // XXX psFree (myPT);
+
     psFree (file->fpa->fromTPA);
-    psPlaneTransform *myPT = psPlaneTransformAlloc(file->fpa->toTPA->x->nX+4, file->fpa->toTPA->x->nY+4);
-    file->fpa->fromTPA = psPlaneTransformInvert(myPT, file->fpa->toTPA, *region, 50);
-    psFree (myPT);
+    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, 4);
+
     psFree (region);
 
