Index: trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvo.h	(revision 16056)
+++ trunk/Ohana/src/libdvo/include/dvo.h	(revision 16057)
@@ -335,4 +335,5 @@
 void dvo_catalog_create (SkyRegion *region, Catalog *catalog);
 void dvo_catalog_free (Catalog *catalog);
+void dvo_catalog_free_data (Catalog *catalog);
 int dvo_catalog_check (Catalog *catalog, int Nsecfilt, int extend);
 int dvo_catalog_lock (Catalog *catalog, int lockmode);
@@ -354,4 +355,7 @@
 int dvo_catalog_save_split (Catalog *catalog, char VERBOSE);
 int dvo_catalog_update_split (Catalog *catalog, char VERBOSE);
+
+int dvo_catalog_load_segment (Catalog *catalog, int VERBOSE, int start, int Nrows);
+int dvo_catalog_load_segment_split (Catalog *catalog, int VERBOSE, int start, int Nrows);
 
 /*** conversion functions / I/O conversions ***/
Index: trunk/Ohana/src/libdvo/src/dvo_catalog.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 16056)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog.c	(revision 16057)
@@ -396,7 +396,4 @@
 
 int dvo_catalog_load_segment (Catalog *catalog, int VERBOSE, int start, int Nrows) {
-  
-  int Naxis, split, status;
-  char measure[80];
 
   switch (catalog[0].catmode) {
Index: trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 16056)
+++ trunk/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 16057)
@@ -40,4 +40,5 @@
   *mySecfilt = secfilt;
   *myNsecfilt = Nsecfilt;
+  return (TRUE);
 }
 
@@ -157,5 +158,5 @@
 int dvo_catalog_load_split (Catalog *catalog, int VERBOSE) {
 
-  int Nbytes, Nitems, Nexpect, Naverage, Nmeasure, Nmissing, Nsecfilt, status;
+  int Nbytes, Nitems, Naverage, Nmeasure, Nmissing, Nsecfilt, status;
   Header header;
   FTable ftable;
@@ -328,5 +329,5 @@
 int dvo_catalog_load_segment_split (Catalog *catalog, int VERBOSE, int start, int Nrows) {
 
-  int Nbytes, Naverage, Nsecfilt, Nexpect, Nitems, Nmeasure, Nmissing;
+  int Nbytes, Naverage, Nexpect, Nitems, Nmeasure, Nmissing;
   Header header;
   FTable ftable;
@@ -469,10 +470,8 @@
 
   int Nitems;
-  Matrix matrix;
   Header header;
   FTable ftable;
-  Catalog *catfile;
   SecFilt *primary, *secfilt;
-  int i, j, Nsecfilt, Nallfilt, Ntotal;
+  int Nsecfilt;
   int Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new;
   int first, start, Nrows;
@@ -650,12 +649,9 @@
 int dvo_catalog_update_split (Catalog *catalog, char VERBOSE) {
 
-  int i, Nx, Ny, Nlines;
-  int Nitems, Nskip, Nout, Ndisk, Nstart;
-  Matrix matrix;
+  int Nitems;
   Header header;
   FTable ftable;
-  Catalog *catfile;
   SecFilt *primary, *secfilt;
-  int j, Nsecfilt, Nallfilt, Ntotal;
+  int Nsecfilt;
   int Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new;
   int first, start, Nrows;
Index: trunk/Ohana/src/libdvo/src/skyregion_gsc.c
===================================================================
--- trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 16056)
+++ trunk/Ohana/src/libdvo/src/skyregion_gsc.c	(revision 16057)
@@ -212,6 +212,8 @@
   filename = table[0].filename;
 
-# define SWAPFUNC(A,B){ int tmp; \
-  char     *tempfile = filename[A]; filename[A] = filename[B]; filename[B] = tempfile; \
+# define SWAPFUNC(A,B){ \
+  if (table[0].filename) { \
+    char     *tempfile = filename[A]; filename[A] = filename[B]; filename[B] = tempfile; \
+  } \
   SkyRegion tempregion = regions[A]; regions[A] = regions[B]; regions[B] = tempregion; \
 }
