Index: trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c	(revision 17477)
+++ trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c	(revision 20047)
@@ -81,5 +81,11 @@
   if (!strcmp(string, "EXIT")) outstate = PCONTROL_JOB_EXIT;
   if (!strcmp(string, "CRASH")) outstate = PCONTROL_JOB_CRASH;
-  ASSERT (outstate != PCONTROL_JOB_BUSY, "invalid status response (CheckBusyJobResponse)");
+  if (outstate == PCONTROL_JOB_BUSY) {
+    if (DEBUG || VerboseMode()) gprint (GP_ERR, "invalid status response (CheckBusyJobResponse), try again\n");
+    PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);
+    PutJob (job, PCONTROL_JOB_BUSY, STACK_BOTTOM);
+    return (TRUE);
+  }
+
 
   /* parse the exit status and sizes of output buffers */
@@ -87,11 +93,11 @@
   sscanf (p, "%*s %d", &job[0].exit_status);
   p = memstr (buffer[0].buffer, "STDOUT", buffer[0].Nbuffer);
-  sscanf (p, "%*s %d", &job[0].stdout_size);
+  sscanf (p, "%*s %d", &job[0].stdout.size);
   p = memstr (buffer[0].buffer, "STDERR", buffer[0].Nbuffer);
-  sscanf (p, "%*s %d", &job[0].stderr_size);
+  sscanf (p, "%*s %d", &job[0].stderr.size);
 
   // XXX runaway job if output too large?
-  if (job[0].stdout_size > 0x100000) abort();
-  if (job[0].stderr_size > 0x100000) abort();
+  if (job[0].stdout.size > 0x1000000) abort();
+  if (job[0].stderr.size > 0x1000000) abort();
 
   // job has exited : move to DONE stack 
