Index: trunk/psModules/src/astrom/pmAstrometryModel.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 39926)
+++ trunk/psModules/src/astrom/pmAstrometryModel.c	(revision 39927)
@@ -627,6 +627,19 @@
     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, "ROT_PARITY");
     TRANSFER (file->fpa->concepts, row, "REF_CHIP");
+
+    // DEFAULT value of +1 for ROT_PARITY (do not abort on missing value)
+    psMetadataItem *item = psMetadataLookup(row, "ROT_PARITY");
+    if (!item) {
+      psMetadataAddS32(row, PS_LIST_TAIL, "ROT_PARITY", PS_META_REPLACE, "rotator parity", +1);
+      psLogMsg ("psModules.astrom", 4, "setting default ROT_PARITY of +1\n");
+    } else {
+      psMetadataItem *newItem = psMetadataItemCopy(item); 
+      if (!psMetadataAddItem(file->fpa->concepts, newItem, PS_LIST_TAIL, PS_META_REPLACE)) {
+        psAbort ("cannot copy %s", "ROT_PARITY"); 
+      }
+      psFree (newItem); 
+    }
 
     psFree (model);
@@ -691,5 +704,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");
+    int rotatorParity = psMetadataLookupS32(&status, file->fpa->concepts, "ROT_PARITY"); 
+    // REQUIRE (status, "missing ROT_PARITY");
+    if (!status) {
+      rotatorParity = +1;
+      psLogMsg ("psModules.astrom", 4, "setting default ROT_PARITY of +1\n");
+    }
     
     // XXX we've swapped the sign and parity of POS (add to model)
