Index: /trunk/Ohana/src/addstar/include/addstar.h
===================================================================
--- /trunk/Ohana/src/addstar/include/addstar.h	(revision 5944)
+++ /trunk/Ohana/src/addstar/include/addstar.h	(revision 5945)
@@ -119,5 +119,5 @@
 void       help                   PROTO(());
 int        in_image               PROTO((double r, double d, Image *image));
-int        load_pt_catalog        PROTO((Catalog *catalog, SkyRegion *region, char *path));  /*** choose new name ***/
+int        load_pt_catalog        PROTO((Catalog *catalog, SkyRegion *region));  /*** choose new name ***/
 void       load_subpix            PROTO(());
 void       lock_image_db          PROTO((FITS_DB *db, char *filename));
Index: /trunk/Ohana/src/addstar/src/SkyRegionUtils.c
===================================================================
--- /trunk/Ohana/src/addstar/src/SkyRegionUtils.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/SkyRegionUtils.c	(revision 5945)
@@ -14,5 +14,5 @@
   /* match the basename against the GSCRegion file names */
   for (i = 0; i < input[0].Nregions; i++) {
-    status = stat ((char *) input[0].regions[i][0].filename, &filestats);
+    status = stat (input[0].filename[i], &filestats);
     if ((status == -1) && (errno == ENOENT)) continue;
     /* give an error for other conditions? */
Index: /trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c
===================================================================
--- /trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c	(revision 5945)
@@ -58,4 +58,5 @@
   for (i = 0; i < skylist[0].Nregions; i++) {
 
+    catalog.filename = skylist[0].filename[i];
     load_pt_catalog (&catalog, skylist[0].regions[i]);
 
Index: /trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c
===================================================================
--- /trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c	(revision 5945)
@@ -52,4 +52,5 @@
   for (i = 0; i < skylist[0].Nregions; i++) {
 
+    catalog.filename = skylist[0].filename[i];
     load_pt_catalog (&catalog, skylist[0].regions[i]);
 
Index: /trunk/Ohana/src/addstar/src/UpdateDatabase_Reflist.c
===================================================================
--- /trunk/Ohana/src/addstar/src/UpdateDatabase_Reflist.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/UpdateDatabase_Reflist.c	(revision 5945)
@@ -57,4 +57,5 @@
   for (i = 0; i < skylist[0].Nregions; i++) {
 
+    catalog.filename = skylist[0].filename[i];
     load_pt_catalog (&catalog, skylist[0].regions[i]);
 
Index: /trunk/Ohana/src/addstar/src/addstar.c
===================================================================
--- /trunk/Ohana/src/addstar/src/addstar.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/addstar.c	(revision 5945)
@@ -11,6 +11,6 @@
   AddstarClientOptions options;
 
-  SkyTable *sky;
-  SkyList *skylist;
+  SkyTable *sky = NULL;
+  SkyList *skylist = NULL;
 
   double dtime;
@@ -74,5 +74,6 @@
     gettimeofday (&t1, NULL);
 
-    load_pt_catalog (&catalog, skylist[0].regions[i], CATDIR);
+    catalog.filename = skylist[0].filename[i];
+    load_pt_catalog (&catalog, skylist[0].regions[i]);
 
     /* for only_match, skip empty catalogs XXX EAM : this leaves behind empty files */
Index: /trunk/Ohana/src/addstar/src/get2mass.c
===================================================================
--- /trunk/Ohana/src/addstar/src/get2mass.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/get2mass.c	(revision 5945)
@@ -31,4 +31,5 @@
     switch (mode) {
       case 0:
+	// XXX put filename from table here
 	refcat = get2mass_AS_data (&sky[0].regions[i], patch, photcode, &Nrefcat);
 	if (VERBOSE) fprintf (stderr, "loaded %d stars from 2MASS (allsky)\n", Nrefcat);
@@ -84,5 +85,5 @@
     if (De < patch[0].Dmin) continue;
     sprintf (datafile, "%s/%s", path, filename);
-    regions[Nregions].filename = (e_void) strcreate (datafile);
+    // XXX : put in table regions[Nregions].filename = (e_void) strcreate (datafile);
     regions[Nregions].Rmin = Rs;
     regions[Nregions].Rmax = Re;
Index: /trunk/Ohana/src/addstar/src/get2mass_as.c
===================================================================
--- /trunk/Ohana/src/addstar/src/get2mass_as.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/get2mass_as.c	(revision 5945)
@@ -55,5 +55,5 @@
   if (!FilterSkip) Shutdown ("invalid photcode %s", GetPhotcodeNamebyCode(photcode));
 
-  filename = (char *) region[0].filename;
+  // filename = (char *) region[0].filename;
   gf = gzopen (filename, "rb");
   if (gf == NULL) Shutdown ("can't read 2mass data file: %s", filename);
Index: /trunk/Ohana/src/addstar/src/get2mass_dr2.c
===================================================================
--- /trunk/Ohana/src/addstar/src/get2mass_dr2.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/get2mass_dr2.c	(revision 5945)
@@ -27,5 +27,6 @@
   fprintf (stderr, "overlap: %f - %f, %f - %f\n", RA0, RA1, DEC0, DEC1);
 
-  filename = (char *) region[0].filename;
+  // XXX get from args
+  // filename = (char *) region[0].filename;
   gf = gzopen (filename, "rb");
   if (gf == NULL) Shutdown ("can't read 2mass data file: %s", filename);
Index: /trunk/Ohana/src/addstar/src/getgsc.c
===================================================================
--- /trunk/Ohana/src/addstar/src/getgsc.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/getgsc.c	(revision 5945)
@@ -25,5 +25,5 @@
   
   for (i = 0; i < skylist[0].Nregions; i++) {
-    gsc = rd_gsc ((char *)skylist[0].regions[i][0].filename, &Ngsc);
+    // XXX : get from table gsc = rd_gsc ((char *)skylist[0].regions[i][0].filename, &Ngsc);
 
     REALLOCATE (stars, Stars, MAX (1, Nstars + Ngsc));
Index: /trunk/Ohana/src/addstar/src/load_pt_catalog.c
===================================================================
--- /trunk/Ohana/src/addstar/src/load_pt_catalog.c	(revision 5944)
+++ /trunk/Ohana/src/addstar/src/load_pt_catalog.c	(revision 5945)
@@ -1,8 +1,6 @@
 # include "addstar.h"
 
-int load_pt_catalog (Catalog *catalog, SkyRegion *region, char *path) {
+int load_pt_catalog (Catalog *catalog, SkyRegion *region) {
   
-  catalog[0].filename = (char *) region[0].filename;
-
   check_permissions (catalog[0].filename);
   if (VERBOSE) fprintf (stderr, "adding to %s\n", catalog[0].filename);
Index: /trunk/Ohana/src/delstar/src/delete_imagefile.c
===================================================================
--- /trunk/Ohana/src/delstar/src/delete_imagefile.c	(revision 5944)
+++ /trunk/Ohana/src/delstar/src/delete_imagefile.c	(revision 5945)
@@ -23,6 +23,6 @@
 
   for (i = 0; i < skylist[0].Nregions; i++) {
-    if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].regions[i][0].filename);
-    catalog.filename = (char *) skylist[0].regions[i][0].filename;  /* don't free region before catalog! */
+    if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].filename[i]);
+    catalog.filename = skylist[0].filename[i];  /* don't free region before catalog! */
     switch (lock_catalog (&catalog, LCK_XCLD)) {
       case 0:
Index: /trunk/Ohana/src/delstar/src/delete_imagename.c
===================================================================
--- /trunk/Ohana/src/delstar/src/delete_imagename.c	(revision 5944)
+++ /trunk/Ohana/src/delstar/src/delete_imagename.c	(revision 5945)
@@ -33,6 +33,6 @@
 
     for (i = 0; i < skylist[0].Nregions; i++) {
-      if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].regions[i][0].filename);
-      catalog.filename = (char *) skylist[0].regions[i][0].filename;  /* don't free region before catalog! */
+      if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].filename[i]);
+      catalog.filename = skylist[0].filename[i];  /* don't free region before catalog! */
       switch (lock_catalog (&catalog, LCK_XCLD)) {
 	case 0:
Index: /trunk/Ohana/src/delstar/src/delete_times.c
===================================================================
--- /trunk/Ohana/src/delstar/src/delete_times.c	(revision 5944)
+++ /trunk/Ohana/src/delstar/src/delete_times.c	(revision 5945)
@@ -53,6 +53,6 @@
   /* delete from all identified regions */
   for (i = 0; i < skylist[0].Nregions; i++) {
-    if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].regions[i][0].filename);
-    catalog.filename = (char *) skylist[0].regions[i][0].filename;  /* don't free region before catalog! */
+    if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].filename[i]);
+    catalog.filename = skylist[0].filename[i];  /* don't free region before catalog! */
     switch (lock_catalog (&catalog, LCK_XCLD)) {
       case 0:
Index: /trunk/Ohana/src/libautocode/def/SkyRegion.d
===================================================================
--- /trunk/Ohana/src/libautocode/def/SkyRegion.d	(revision 5944)
+++ /trunk/Ohana/src/libautocode/def/SkyRegion.d	(revision 5945)
@@ -2,5 +2,5 @@
 EXTNAME SKY_REGION
 TYPE    BINTABLE
-SIZE    64
+SIZE    56
 
 FIELD   Rmin,	   R_MIN,	   float, 
@@ -16,3 +16,2 @@
 FIELD   table,	   TABLE,	   char,          does this entry have a table?
 FIELD   name,      NAME,           char[21],      name / filename
-FIELD   filename,  FILENAME,       e_void,        filename pointer
Index: /trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- /trunk/Ohana/src/libdvo/include/dvo.h	(revision 5944)
+++ /trunk/Ohana/src/libdvo/include/dvo.h	(revision 5945)
@@ -109,4 +109,5 @@
 typedef struct {
   int Nregions;
+  char **filename;
   SkyRegion *regions;
 } SkyTable;
@@ -114,4 +115,5 @@
 typedef struct {
   int Nregions;
+  char **filename;
   SkyRegion **regions;
 } SkyList;
Index: /trunk/Ohana/src/libdvo/src/skyregion_gsc.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 5944)
+++ /trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 5945)
@@ -59,5 +59,4 @@
   regions[Nr].child  	=  TRUE;
   regions[Nr].table  	=  (depth == 0);
-  regions[Nr].filename  =  (e_void) NULL;
   strcpy (regions[Nr].name, "fullsky");
   
@@ -79,5 +78,4 @@
     regions[Nr].child  	  =  TRUE;
     regions[Nr].table  	  =  (depth == 1);
-    regions[Nr].filename  =  (e_void) NULL;
     strcpy (regions[Nr].name, DecNames[i]);
   }
@@ -93,5 +91,4 @@
     regions[Nr].child  	  =  TRUE;
     regions[Nr].table  	  =  (depth == 1);
-    regions[Nr].filename  =  (e_void) NULL;
     strcpy (regions[Nr].name, DecNames[i+13]);
   }
@@ -141,5 +138,4 @@
       regions[Nr].child    =  TRUE;
       regions[Nr].table    =  (depth == 2);
-      regions[Nr].filename =  (e_void) NULL;
       regions[Nr].childS   =  0;
       regions[Nr].childE   =  0;
@@ -179,5 +175,4 @@
 	regions[Nr].child    =  FALSE;
 	regions[Nr].table    =  (depth == 3);
-	regions[Nr].filename =  (e_void) NULL;
 	regions[Nr].childS   =  0;
 	regions[Nr].childE   =  0;
@@ -198,4 +193,10 @@
   skytable[0].regions = regions;
   skytable[0].Nregions = Nr;
+
+  ALLOCATE (skytable[0].filename, char *, skytable[0].Nregions);
+  for (i = 0; i < skytable[0].Nregions; i++) {
+    skytable[0].filename[i] = NULL;
+  }
+
   return (skytable);
 }
Index: /trunk/Ohana/src/libdvo/src/skyregion_io.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_io.c	(revision 5944)
+++ /trunk/Ohana/src/libdvo/src/skyregion_io.c	(revision 5945)
@@ -40,6 +40,7 @@
   ALLOCATE (skytable, SkyTable, 1);
   skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);
+  ALLOCATE (skytable[0].filename, char *, skytable[0].Nregions);
   for (i = 0; i < skytable[0].Nregions; i++) {
-    skytable[0].regions[i].filename = (e_void) NULL;
+    skytable[0].filename[i] = NULL;
   }
   
@@ -146,5 +147,5 @@
   for (i = 0; i < list[0].Nregions; i++) {
     sprintf (line, "%s/%s.%s", path, list[0].regions[i][0].name, ext);
-    list[0].regions[i][0].filename = (e_void) strcreate (line);
+    list[0].filename[i] = strcreate (line);
   }
 
@@ -160,5 +161,5 @@
   for (i = 0; i < sky[0].Nregions; i++) {
     sprintf (line, "%s/%s.%s", path, sky[0].regions[i].name, ext);
-    sky[0].regions[i].filename = (e_void) strcreate (line);
+    sky[0].filename[i] = strcreate (line);
   }
 
Index: /trunk/Ohana/src/libdvo/src/skyregion_ops.c
===================================================================
--- /trunk/Ohana/src/libdvo/src/skyregion_ops.c	(revision 5944)
+++ /trunk/Ohana/src/libdvo/src/skyregion_ops.c	(revision 5945)
@@ -272,6 +272,6 @@
     if (ELEMENTS) {
       for (i = 0; i < list[0].Nregions; i++) {
-	if (list[0].regions[i][0].filename != (e_void) NULL) {
-	  free ((size_t *) list[0].regions[i][0].filename);
+	if (list[0].filename[i] != NULL) {
+	  free (list[0].filename[i]);
 	}
 	free (list[0].regions[i]);
@@ -292,6 +292,6 @@
   if (table[0].regions != NULL) {
     for (i = 0; i < table[0].Nregions; i++) {
-      if (table[0].regions[i].filename != (e_void) NULL) {
-	free ((size_t *) table[0].regions[i].filename);
+      if (table[0].filename[i] != NULL) {
+	free (table[0].filename[i]);
       }
     }
Index: /trunk/Ohana/src/opihi/dvo/avextract.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/avextract.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/avextract.c	(revision 5945)
@@ -55,5 +55,5 @@
   for (i = 0; i < skylist[0].Nregions; i++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[i][0].filename;
+    catalog.filename = skylist[0].filename[i];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/calextract.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/calextract.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/calextract.c	(revision 5945)
@@ -61,5 +61,5 @@
 
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[Nr][0].filename;
+    catalog.filename = skylist[0].filename[Nr];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/calmextract.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/calmextract.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/calmextract.c	(revision 5945)
@@ -74,5 +74,5 @@
 
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[Nr][0].filename;
+    catalog.filename = skylist[0].filename[Nr];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/ccd.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/ccd.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/ccd.c	(revision 5945)
@@ -58,5 +58,5 @@
   for (k = 0; k < skylist[0].Nregions; k++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[k][0].filename;
+    catalog.filename = skylist[0].filename[k];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
       case 2:
Index: /trunk/Ohana/src/opihi/dvo/cmd.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/cmd.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/cmd.c	(revision 5945)
@@ -56,5 +56,5 @@
   for (j = 0; j < skylist[0].Nregions; j++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[j][0].filename;
+    catalog.filename = skylist[0].filename[j];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/ddmags.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/ddmags.c	(revision 5945)
@@ -58,5 +58,5 @@
   for (k = 0; k < skylist[0].Nregions; k++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[k][0].filename;
+    catalog.filename = skylist[0].filename[k];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
       case 2:
Index: /trunk/Ohana/src/opihi/dvo/dmagaves.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dmagaves.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/dmagaves.c	(revision 5945)
@@ -50,5 +50,5 @@
   for (j = 0; j < skylist[0].Nregions; j++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[j][0].filename;
+    catalog.filename = skylist[0].filename[j];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/dmagmeas.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dmagmeas.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/dmagmeas.c	(revision 5945)
@@ -58,5 +58,5 @@
   for (j = 0; j < skylist[0].Nregions; j++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[j][0].filename;
+    catalog.filename = skylist[0].filename[j];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
       case 2:
Index: /trunk/Ohana/src/opihi/dvo/dmags.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dmags.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/dmags.c	(revision 5945)
@@ -56,5 +56,5 @@
   for (j = 0; j < skylist[0].Nregions; j++) {
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[j][0].filename;
+    catalog.filename = skylist[0].filename[j];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
       case 2:
Index: /trunk/Ohana/src/opihi/dvo/dmt.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dmt.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/dmt.c	(revision 5945)
@@ -69,5 +69,5 @@
 
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[k][0].filename;
+    catalog.filename = skylist[0].filename[k];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/fitcolors.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/fitcolors.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/fitcolors.c	(revision 5945)
@@ -99,5 +99,5 @@
   for (k = 0; k < skylist[0].Nregions; k++) {
     /* lock, load, unlock catalog */
-    catalog[k].filename = (char *) skylist[0].regions[k][0].filename;
+    catalog[k].filename = skylist[0].filename[k];
     switch (lock_catalog (&catalog[k], LCK_SOFT)) {
       case 2:
Index: /trunk/Ohana/src/opihi/dvo/gcat.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/gcat.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/gcat.c	(revision 5945)
@@ -26,10 +26,10 @@
 
   for (i = 0; i < skylist[0].Nregions; i++) {
-    if (stat ((char *) skylist[0].regions[i][0].filename, &filestat) != -1) {
+    if (stat (skylist[0].filename[i], &filestat) != -1) {
       fprintf (stderr, "%3d %s *\n", i, skylist[0].regions[i][0].name);
     } else {
       fprintf (stderr, "%3d %s\n", i, skylist[0].regions[i][0].name);
     } 
-    set_str_variable ("CATNAME", (char *) skylist[0].regions[i][0].filename);
+    set_str_variable ("CATNAME", skylist[0].filename[i]);
   }
 
Index: /trunk/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/gstar.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/gstar.c	(revision 5945)
@@ -60,5 +60,5 @@
 
   /* lock, load, unlock catalog */
-  catalog.filename = (char *) skylist[0].regions[0][0].filename;
+  catalog.filename = skylist[0].filename[0];
   switch (lock_catalog (&catalog, LCK_SOFT)) {
   case 2:
Index: /trunk/Ohana/src/opihi/dvo/imdata.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/imdata.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/imdata.c	(revision 5945)
@@ -120,5 +120,5 @@
 
     /* get file name and open */
-    catalog.filename = (char *) skylist[0].regions[j][0].filename;
+    catalog.filename = skylist[0].filename[j];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/lcat.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/lcat.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/lcat.c	(revision 5945)
@@ -33,5 +33,5 @@
   for (i = 0; i < skylist[0].Nregions; i++) {
     exists = 'Y';
-    if (stat ((char *) skylist[0].regions[i][0].filename, &filestat) == -1) exists = 'N';
+    if (stat (skylist[0].filename[i], &filestat) == -1) exists = 'N';
     if (ShowAll) {
       fprintf (stderr, "%3d %s  %c\n", i, skylist[0].regions[i][0].name, exists);
Index: /trunk/Ohana/src/opihi/dvo/lcurve.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/lcurve.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/lcurve.c	(revision 5945)
@@ -81,5 +81,5 @@
 
   /* set filename, read in header */
-  catalog.filename = (char *) skylist[0].regions[0][0].filename;
+  catalog.filename = skylist[0].filename[0];
   switch (lock_catalog (&catalog, LCK_SOFT)) {
   case 2:
Index: /trunk/Ohana/src/opihi/dvo/lightcurve.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/lightcurve.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/lightcurve.c	(revision 5945)
@@ -57,5 +57,5 @@
 
   /* set filename, read in header */
-  catalog.filename = (char *) skylist[0].regions[0][0].filename;
+  catalog.filename = skylist[0].filename[0];
   switch (lock_catalog (&catalog, LCK_SOFT)) {
   case 2:
Index: /trunk/Ohana/src/opihi/dvo/mextract.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/mextract.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/mextract.c	(revision 5945)
@@ -56,5 +56,5 @@
 
   for (i = 0; i < skylist[0].Nregions; i++) {
-    catalog.filename = (char *) skylist[0].regions[i][0].filename;
+    catalog.filename = skylist[0].filename[i];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/pmeasure.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/pmeasure.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/pmeasure.c	(revision 5945)
@@ -81,5 +81,5 @@
     
     /* lock, load, unlock catalog */
-    catalog.filename = (char *) skylist[0].regions[j][0].filename;
+    catalog.filename = skylist[0].filename[j];
     switch (lock_catalog (&catalog, LCK_SOFT)) {
     case 2:
Index: /trunk/Ohana/src/opihi/dvo/region_list.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/region_list.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/region_list.c	(revision 5945)
@@ -96,7 +96,9 @@
     ALLOCATE (skylist[0].regions, SkyRegion *, 1);
     ALLOCATE (skylist[0].regions[0], SkyRegion, 1);
+    ALLOCATE (skylist[0].filename, char *, 1);
+    
     strcpy (skylist[0].regions[0][0].name, RegionName);
     sprintf (filename, "%s/%s.cpt", CATDIR, RegionName);
-    skylist[0].regions[0][0].filename = (e_void) strcreate (filename);
+    skylist[0].filename[0] = strcreate (filename);
     free (RegionName);
     RegionName = NULL;
@@ -142,4 +144,5 @@
   NREGIONS = 50;
   ALLOCATE (skylist[0].regions, SkyRegion *, NREGIONS);
+  ALLOCATE (skylist[0].filename, char *, NREGIONS);
 
   while (fscanf (f, "%s", filename) != EOF) {
@@ -147,5 +150,5 @@
     strcpy (skylist[0].regions[Nregions][0].name, filename);
     sprintf (filename, "%s/%s.cpt", CATDIR, skylist[0].regions[Nregions][0].name);
-    skylist[0].regions[Nregions][0].filename = (e_void) strcreate (filename);
+    skylist[0].filename[Nregions] = strcreate (filename);
     Nregions ++;
     CHECK_REALLOCATE (skylist[0].regions, SkyRegion *, NREGIONS, Nregions, 50);
Index: /trunk/Ohana/src/opihi/dvo/skycat.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/skycat.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/skycat.c	(revision 5945)
@@ -63,5 +63,5 @@
 
   for (i = 0; i < Nregions; i++) {
-    if (ShowAll || (stat ((char *) regions[i][0].filename, &filestat) != -1)) {
+    if (ShowAll || (stat (skylist[0].filename[i], &filestat) != -1)) {
       if (VERBOSE) fprintf (stderr, "%3d %s %6.2f - %6.2f, %6.2f - %6.2f\n", i, regions[i][0].name, 
 			    regions[i][0].Rmin, regions[i][0].Rmax, regions[i][0].Dmin, regions[i][0].Dmax);
Index: /trunk/Ohana/src/opihi/dvo/subpix.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/subpix.c	(revision 5944)
+++ /trunk/Ohana/src/opihi/dvo/subpix.c	(revision 5945)
@@ -41,5 +41,5 @@
 
   /* lock, load, unlock catalog */
-  catalog.filename = (char *) skylist[0].regions[0][0].filename;
+  catalog.filename = skylist[0].filename[0];
   switch (lock_catalog (&catalog, LCK_SOFT)) {
   case 2:
