Index: /trunk/Ohana/src/libdvo/src/coordops.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/coordops.c	(revision 16979)
+++ /trunk/Ohana/src/libdvo/src/coordops.c	(revision 16980)
@@ -1,8 +1,19 @@
 # include <dvo.h>
 
-static Coords *mosaic = NULL;
+static Coords mosaic;
+static int gotMosaic = FALSE;
 
 void RegisterMosaic (Coords *coords) {
-  mosaic = coords;
+  mosaic = *coords;
+  gotMosaic = TRUE;
+}
+
+int isRegisteredMosaic () {
+  return (gotMosaic);
+}
+
+int GetMosaicCoords (Coords *coords) {
+  *coords = mosaic;
+  return (TRUE);
 }
 
@@ -52,6 +63,6 @@
     /* mosaic astrometry : WRP is chip astrometry; apply mosaic (DIS) term */
     if (proj == PROJ_WRP) {
-      if (mosaic == NULL) return (FALSE);
-      XY_to_RD (ra, dec, *ra, *dec, mosaic);
+      if (!gotMosaic) return (FALSE);
+      XY_to_RD (ra, dec, *ra, *dec, &mosaic);
     }
     return (TRUE);
@@ -185,6 +196,6 @@
   if (mode == PROJ_MODE_CARTESIAN) {
     if (proj == PROJ_WRP) {
-      if (mosaic == NULL) return (FALSE);
-      RD_to_XY (&Lo, &Mo, ra, dec, mosaic);
+      if (!gotMosaic) return (FALSE);
+      RD_to_XY (&Lo, &Mo, ra, dec, &mosaic);
       *L = (Lo - coords[0].crval1);
       *M = (Mo - coords[0].crval2);
