Index: trunk/Ohana/src/libdvo/src/coordops.c
===================================================================
--- trunk/Ohana/src/libdvo/src/coordops.c	(revision 39351)
+++ trunk/Ohana/src/libdvo/src/coordops.c	(revision 39352)
@@ -65,11 +65,13 @@
   // of the form (dX,dY) = f(X,Y), then if (dL,dM) = f(X,Y).
   if (coords[0].Npolyterms == -1) {
-    myAssert (coords[0].offsetMap, "offsetMap is requested by not defined");
-    float dX = AstromOffsetMapValue (coords->offsetMap, x, y, TRUE);
-    float dY = AstromOffsetMapValue (coords->offsetMap, x, y, FALSE);
-    if (isnan(dX)) dX = 0.0;
-    if (isnan(dY)) dY = 0.0;
-    x += dX;
-    y += dY;
+    if (coords[0].offsetMap) {
+      // myAssert (coords[0].offsetMap, "offsetMap is requested by not defined");
+      float dX = AstromOffsetMapValue (coords->offsetMap, x, y, TRUE);
+      float dY = AstromOffsetMapValue (coords->offsetMap, x, y, FALSE);
+      if (isnan(dX)) dX = 0.0;
+      if (isnan(dY)) dY = 0.0;
+      x += dX;
+      y += dY;
+    }
   }
 
@@ -507,38 +509,41 @@
   // of the form (dX,dY) = f(X,Y), then if (dL,dM) = f(X,Y).
   if (coords[0].Npolyterms == -1) {
-    myAssert (coords[0].offsetMap, "offsetMap is requested by not defined");
-
-    double xraw = *x;
-    double yraw = *y;
-
-    double dXo = 0.0;
-    double dYo = 0.0;
-
-    int i;
-    for (i = 0; i < 4; i++) {
-      double dX = AstromOffsetMapValue (coords->offsetMap, xraw, yraw, TRUE);
-      double dY = AstromOffsetMapValue (coords->offsetMap, xraw, yraw, FALSE);
-
-      if (isnan(dX)) dX = 0.0;
-      if (isnan(dY)) dY = 0.0;
-
-      dX -= dXo;
-      dY -= dYo;
-
-      xraw -= dX;
-      yraw -= dY;
-
-      dXo += dX;
-      dYo += dY;
-    }
-
-    *x = xraw;
-    *y = yraw;
-
-    // I need to iterate since the position at which I have first made the correction is
-    // not the true position.  but if dX,dY is small and the gradient of dX,dY is also
-    // small, then even a single pass gets us close.
-
-    // XXX test this and use a while (hypot(dX,dY) > XXX) condition 
+    // myAssert (coords[0].offsetMap, "offsetMap is requested by not defined");
+
+    if (coords[0].offsetMap) {
+
+      double xraw = *x;
+      double yraw = *y;
+
+      double dXo = 0.0;
+      double dYo = 0.0;
+
+      int i;
+      for (i = 0; i < 4; i++) {
+	double dX = AstromOffsetMapValue (coords->offsetMap, xraw, yraw, TRUE);
+	double dY = AstromOffsetMapValue (coords->offsetMap, xraw, yraw, FALSE);
+
+	if (isnan(dX)) dX = 0.0;
+	if (isnan(dY)) dY = 0.0;
+
+	dX -= dXo;
+	dY -= dYo;
+
+	xraw -= dX;
+	yraw -= dY;
+
+	dXo += dX;
+	dYo += dY;
+      }
+
+      *x = xraw;
+      *y = yraw;
+
+      // I need to iterate since the position at which I have first made the correction is
+      // not the true position.  but if dX,dY is small and the gradient of dX,dY is also
+      // small, then even a single pass gets us close.
+
+      // XXX test this and use a while (hypot(dX,dY) > XXX) condition 
+    }
   }
   return (TRUE);
