Index: trunk/Ohana/src/opihi/pcontrol/check.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/check.c	(revision 8296)
+++ trunk/Ohana/src/opihi/pcontrol/check.c	(revision 8424)
@@ -1,6 +1,3 @@
 # include "pcontrol.h"
-
-char jobstate[7][32]  = {"PENDING", "BUSY", "HUNG", "DONE", "KILL", "EXIT", "CRASH"};
-char hoststate[5][32] = {"IDLE",    "BUSY", "DOWN", "DONE", "OFF"};
 
 int check (int argc, char **argv) {
@@ -18,14 +15,18 @@
   if (!strcasecmp (argv[1], "JOB")) {
     JobID = atoi (argv[2]);
+
+    SetCheckPoint ();  // ensure the JOB is on one of the stacks
     job = PullJobByID (JobID, &StackID);
     if (job == NULL) {
       gprint (GP_LOG, "job not found\n");
+      ClearCheckPoint ();
       return (FALSE);
     }
-    gprint (GP_LOG, "STATUS %s\n", jobstate[StackID]);
+    gprint (GP_LOG, "STATUS %s\n", GetJobStackName(StackID));
     gprint (GP_LOG, "EXITST %d\n", job[0].exit_status);
     gprint (GP_LOG, "STDOUT %d\n", job[0].stdout_size);
     gprint (GP_LOG, "STDERR %d\n", job[0].stderr_size);
     PutJob (job, StackID, STACK_BOTTOM);
+    ClearCheckPoint ();
     return (TRUE);
   }
@@ -33,11 +34,15 @@
   if (!strcasecmp (argv[1], "HOST")) {
     HostID = atoi (argv[2]);
+
+    SetCheckPoint ();  // ensure the HOST is on one of the stacks
     host = PullHostByID (HostID, &StackID);
     if (host == NULL) {
       gprint (GP_LOG, "host not found\n");
+      ClearCheckPoint ();
       return (FALSE);
     }
-    gprint (GP_LOG, "host %s\n", hoststate[StackID]);
+    gprint (GP_LOG, "host %s\n", GetHostStackName(StackID));
     PutHost (host, StackID, STACK_BOTTOM);
+    ClearCheckPoint ();
     return (TRUE);
   }
@@ -46,4 +51,2 @@
   return (FALSE);
 }
-
-XXX how do I handle objects which are in flight??
