Index: branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/HostTable.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/HostTable.c	(revision 37790)
+++ branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/HostTable.c	(revision 37792)
@@ -333,5 +333,5 @@
 
   // this loop has 2 chunks: (a) check for I/O + (b) check for jobs done
-  while (1) {
+  while (Nfound < Nrunning) {
 
     // Wait up to 0.5 second for host to provide I/O
@@ -362,5 +362,5 @@
 	// if (table->hosts[i].stdout.Nbuffer > 0x10000) {
 	if (table->hosts[i].stdout.Nbuffer > 0x1000) {
-	  int printHead = VERBOSE || (table->hosts[i].stdout.Nbuffer > 0);
+	  int printHead = VERBOSE && (table->hosts[i].stdout.Nbuffer > 0);
 	  if (printHead) fprintf (stdout, "--- stdout from %s --- (%d bytes, v1)\n", table->hosts[i].hostname, table->hosts[i].stdout.Nbuffer);
 	  int Nout = write (STDOUT_FILENO, table->hosts[i].stdout.buffer, table->hosts[i].stdout.Nbuffer);
@@ -376,5 +376,5 @@
 	// if (table->hosts[i].stderr.Nbuffer > 0x10000) {
 	if (table->hosts[i].stderr.Nbuffer > 0x1000) {
-	  int printHead = VERBOSE || (table->hosts[i].stderr.Nbuffer > 0);
+	  int printHead = VERBOSE && (table->hosts[i].stderr.Nbuffer > 0);
 	  if (printHead) fprintf (stdout, "--- stderr from %s --- (%d bytes, v1)\n", table->hosts[i].hostname, table->hosts[i].stderr.Nbuffer);
 	  int Nout = write (STDOUT_FILENO, table->hosts[i].stderr.buffer, table->hosts[i].stderr.Nbuffer);
@@ -392,5 +392,5 @@
       if (!pid) {
 	// fprintf (stderr, "no hosts to harvest\n");
-	usleep (500000);
+	usleep (200000);
 	break; // no outstanding jobs have finished 
       }
@@ -445,9 +445,6 @@
 	}
       }
-      if (!found) {
-	fprintf (stderr, "Programming error: failed to matched finished job to known host!\n");
-	exit (2);
-      }
-      Nfound ++;
+      if (found) Nfound ++;
+      // we sometimes harvest children not in the list (eg, closed kapa window).  just ignore
       if (Nfound == Nrunning) goto escape; // we've harvested all jobs
     }
Index: branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_convert.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_convert.c	(revision 37790)
+++ branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/dvo_convert.c	(revision 37792)
@@ -258,5 +258,5 @@
     case DVO_FORMAT_##FORMAT: { \
       Measure_##TYPE *tmpMeasure; \
-      myAssert (ABS_COORDS || average, "conversion to internal needs average table"); \
+      myAssert (ABS_COORDS || average, "conversion from internal needs average table"); \
       tmpMeasure = MeasureInternalTo_##TYPE (average, measure, Nmeasure); \
       gfits_table_set_Measure_##TYPE (ftable, tmpMeasure, Nmeasure); \
