Index: trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvo.h	(revision 5928)
+++ 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 5928)
+++ 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 5928)
+++ 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 5928)
+++ 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]);
       }
     }
