Index: /trunk/Ohana/src/dvomerge/include/dvomerge.h
===================================================================
--- /trunk/Ohana/src/dvomerge/include/dvomerge.h	(revision 39313)
+++ /trunk/Ohana/src/dvomerge/include/dvomerge.h	(revision 39314)
@@ -128,4 +128,5 @@
 void 	   dvomerge_client_help   PROTO((int argc, char **argv));
 int  	   dvomerge_client_args   PROTO((int *argc, char **argv));
+void       dvomerge_client_args_free PROTO((void));
 
 void       dvoconvert_usage       PROTO((void));
Index: /trunk/Ohana/src/dvomerge/src/args.c
===================================================================
--- /trunk/Ohana/src/dvomerge/src/args.c	(revision 39313)
+++ /trunk/Ohana/src/dvomerge/src/args.c	(revision 39314)
@@ -190,4 +190,11 @@
   FREE (UPDATE_CATCOMPRESS);
   FREE (SINGLE_CPT);
+  FREE (CPTLIST_FILENAME);
+
+  int i;
+  for (i = 0; i < NCPTLIST; i++) {
+    FREE (CPTLIST[i]);
+  }
+  FREE (CPTLIST);
 }
 
@@ -339,4 +346,17 @@
   if ((*argc < 4) || (*argc > 6)) dvomerge_client_usage();
   return TRUE;
+}
+
+void dvomerge_client_args_free (void) {
+  FREE (HOSTDIR);
+  FREE (UPDATE_CATFORMAT);
+  FREE (UPDATE_CATCOMPRESS);
+  FREE (CPTLIST_FILENAME);
+
+  int i;
+  for (i = 0; i < NCPTLIST; i++) {
+    FREE (CPTLIST[i]);
+  }
+  FREE (CPTLIST);
 }
 
Index: /trunk/Ohana/src/dvomerge/src/cptlist.c
===================================================================
--- /trunk/Ohana/src/dvomerge/src/cptlist.c	(revision 39313)
+++ /trunk/Ohana/src/dvomerge/src/cptlist.c	(revision 39314)
@@ -29,4 +29,9 @@
   }      
   *nlist = i;
+
+  for (i = *nlist; i < NLIST; i ++) {
+    FREE(list[i]);
+  }
+
   fclose(listfile);
 
Index: /trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c
===================================================================
--- /trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c	(revision 39313)
+++ /trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c	(revision 39314)
@@ -65,5 +65,5 @@
     // compare to a slightly reduced footprint
     float dPos = 2.0/3600.0;
-    outlist = SkyListByBounds (outsky, -1, inlist[0].regions[i][0].Rmin + dPos, inlist[0].regions[i][0].Rmax - dPos, inlist[0].regions[i][0].Dmin + dPos, inlist[0].regions[i][0].Dmax - dPos);
+    outlist = SkyListByBounds (outlist, -1, inlist[0].regions[i][0].Rmin + dPos, inlist[0].regions[i][0].Rmax - dPos, inlist[0].regions[i][0].Dmin + dPos, inlist[0].regions[i][0].Dmax - dPos);
 # endif
 
@@ -81,7 +81,4 @@
     }
     
-    // XXX validate MATCHED_TABLES
-    myAssert (outlist->Nregions == inlist->Nregions, "oops");
-
     OutputStatus *outstat = OutputStatusInit (outlist->Nregions);
 
Index: /trunk/Ohana/src/dvomerge/src/dvomerge_client.c
===================================================================
--- /trunk/Ohana/src/dvomerge/src/dvomerge_client.c	(revision 39313)
+++ /trunk/Ohana/src/dvomerge/src/dvomerge_client.c	(revision 39314)
@@ -93,4 +93,8 @@
   dvomergeUpdate_catalogs (input, output, inlist, outsky, NsecfiltInput, NsecfiltOutput, IDmap, secfiltMap);
 
+  dvomerge_client_args_free ();
+  ohana_memcheck (TRUE);
+  ohana_memdump (TRUE);
+
   exit (0);
 }
