Index: trunk/psModules/src/astrom/pmAstrometryModel.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 41810)
+++ trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 41892)
@@ -461,4 +461,6 @@
     bool status;
 
+    int ExtraOrders = pmAstrometryGetExtraOrders();
+
     // set FITS cursor
     if (!psFitsMoveExtName (file->fits, "CHIPS")) {
@@ -498,5 +500,5 @@
         int nY = psMetadataLookupS32(&status, row, "NYORDER"); REQUIRE (status, "missing NYORDER");
         if (chip->toFPA == NULL) {
-            chip->toFPA = psPlaneTransformAlloc(nX, nY);
+	    chip->toFPA = psPlaneTransformAlloc(nX, nY, PS_POLYNOMIAL_ORD); // chip->fpa uses ordinary poly
         } else {
             REQUIRE (chip->toFPA->x->nX == nX, "mismatch in chip order");
@@ -525,6 +527,5 @@
 	// as of r40806, psPlaneTransformInvert supplies the extra order (if non-linear)
         psFree (chip->fromFPA);
-        chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 100, 6);
-
+        chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50, ExtraOrders);
         psFree (region);
     }
@@ -539,4 +540,6 @@
 
     bool status;
+
+    int ExtraOrders = pmAstrometryGetExtraOrders();
 
     if (!psFitsMoveExtName (file->fits, "FP")) {
@@ -565,5 +568,5 @@
         if (file->fpa->toTPA == NULL) {
             // allocate the new transformation
-            file->fpa->toTPA = psPlaneTransformAlloc(nX, nY);
+            file->fpa->toTPA = psPlaneTransformAlloc(nX, nY, PS_POLYNOMIAL_ORD); // fpa->tpa uses ORD
         } else {
             REQUIRE (file->fpa->toTPA->x->nX == nX, "mismatch in chip order");
@@ -585,12 +588,7 @@
     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);
-    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 100, 6);
+    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, ExtraOrders);
 
     psFree (model);
@@ -689,4 +687,6 @@
     bool status;
 
+    int ExtraOrders = pmAstrometryGetExtraOrders();
+
     // these externally supplied values are used to set the final transformation terms
     double RA  = psMetadataLookupF64 (&status, concepts, "FPA.RA"); REQUIRE (status, "missing FPA.RA");
@@ -728,8 +728,4 @@
     psLogMsg ("psModules.astrom", 4, "Position Angle: %f, Model Position Angle Zero Point: %f\n", POS, PosZero);
 
-//    psPlaneTransform *fromTPA = psPlaneTransformRotate (NULL, file->fpa->fromTPA, rotatorParity * (PosZero - POS));
-//    psFree (file->fpa->fromTPA);
-//    file->fpa->fromTPA = fromTPA;
-
     psPlaneTransform *toTPA = psPlaneTransformRotate (NULL, file->fpa->toTPA, rotatorParity * (POS - PosZero));
     psFree (file->fpa->toTPA);
@@ -739,11 +735,6 @@
     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);
-    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region,100, 10);
+    file->fpa->fromTPA = psPlaneTransformInvert(NULL, file->fpa->toTPA, *region, 50, ExtraOrders);
 
     psFree (region);
