Index: trunk/psModules/src/astrom/pmAstrometryModel.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 36834)
+++ trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 39926)
@@ -320,4 +320,6 @@
     // the PosZero is the offset between the reported and actual POSANGLE values
     float PosZero = psMetadataLookupF32 (&status, file->fpa->concepts, "FPA.POS_ZERO");  /// XXX be consistent with degrees v radians
+    // Indicate which direction the position angle goes
+    int rotParity = psMetadataLookupS32 (&status, file->fpa->concepts, "FPA.ROT_PARITY");
     char *refChip = psMetadataLookupStr (&status, file->fpa->concepts, "FPA.REF.CHIP");
 
@@ -349,4 +351,5 @@
 
     psMetadataAddF32(row,    PS_LIST_TAIL, "POS_ZERO", PS_META_REPLACE, "POSANGLE offset (degrees)", PosZero);
+    psMetadataAddS32(row,    PS_LIST_TAIL, "ROT_PARITY", PS_META_REPLACE, "rotator parity", rotParity);
     psMetadataAddStr(row,    PS_LIST_TAIL, "REF_CHIP", PS_META_REPLACE, "reference chip for model", refChip);
 
@@ -624,4 +627,5 @@
     TRANSFER (file->fpa->concepts, row, "BORE_P0");
     TRANSFER (file->fpa->concepts, row, "POS_ZERO");
+    TRANSFER (file->fpa->concepts, row, "ROT_PARITY");
     TRANSFER (file->fpa->concepts, row, "REF_CHIP");
 
@@ -687,8 +691,10 @@
     char *refChip  = psMetadataLookupStr(&status, file->fpa->concepts, "REF_CHIP"); REQUIRE (status, "missing REF_CHIP");
 
+    int rotatorParity = psMetadataLookupS32(&status, file->fpa->concepts, "ROT_PARITY"); REQUIRE (status, "missing ROT_PARITY");
+    
     // XXX we've swapped the sign and parity of POS (add to model)
     // apply true posangle = -(POS - POS_ZERO)
     psLogMsg ("psModules.astrom", 4, "Position Angle: %f, Model Position Angle Zero Point: %f\n", POS, PosZero);
-    psPlaneTransform *fromTPA = psPlaneTransformRotate (NULL, file->fpa->fromTPA, (PosZero - POS));
+    psPlaneTransform *fromTPA = psPlaneTransformRotate (NULL, file->fpa->fromTPA, rotatorParity * (PosZero - POS));
     psFree (file->fpa->fromTPA);
     file->fpa->fromTPA = fromTPA;
