Index: trunk/Ohana/src/opihi/pcontrol/check.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/check.c	(revision 11388)
+++ trunk/Ohana/src/opihi/pcontrol/check.c	(revision 18098)
@@ -3,7 +3,9 @@
 int check (int argc, char **argv) {
 
-  Job *job;
-  Host *host;
-  int JobID, HostID, StackID;
+  int JobID, HostID;
+
+  Stack *stack = NULL;
+  Job *job = NULL;
+  Host *host = NULL;
 
   if (argc != 3) {
@@ -14,14 +16,18 @@
 
   if (!strcasecmp (argv[1], "JOB")) {
-    JobID = atoi (argv[2]);
+    JobID = GetID (argv[2]);
+    if (!JobID) {
+      gprint (GP_ERR, "invalid job id %s\n", argv[2]);
+      return (FALSE);
+    }
 
-    SetCheckPoint ();  // ensure the JOB is on one of the stacks
-    job = PullJobByID (JobID, &StackID);
+    stack = GetJobStack (PCONTROL_JOB_ALLJOBS);
+    job = PullStackByID (stack, JobID);
     if (job == NULL) {
       gprint (GP_LOG, "job not found\n");
-      ClearCheckPoint ();
       return (FALSE);
     }
-    gprint (GP_LOG, "STATUS %s\n", GetJobStackName(StackID));
+
+    gprint (GP_LOG, "STATUS %s\n", GetJobStackName(job[0].stack));
     gprint (GP_LOG, "EXITST %d\n", job[0].exit_status);
     gprint (GP_LOG, "STDOUT %d\n", job[0].stdout_size);
@@ -33,6 +39,5 @@
 	gprint (GP_LOG, "HOSTNAME NONE\n");
     }
-    PutJob (job, StackID, STACK_BOTTOM);
-    ClearCheckPoint ();
+    PushStack (stack, STACK_BOTTOM, job, job[0].JobID, job[0].argv[0]);
     return (TRUE);
   }
@@ -41,14 +46,12 @@
     HostID = atoi (argv[2]);
 
-    SetCheckPoint ();  // ensure the HOST is on one of the stacks
-    host = PullHostByID (HostID, &StackID);
+    stack = GetHostStack (PCONTROL_HOST_ALLHOSTS);
+    host = PullStackByID (stack, HostID);
     if (host == NULL) {
       gprint (GP_LOG, "host not found\n");
-      ClearCheckPoint ();
       return (FALSE);
     }
-    gprint (GP_LOG, "host %s\n", GetHostStackName(StackID));
-    PutHost (host, StackID, STACK_BOTTOM);
-    ClearCheckPoint ();
+    gprint (GP_LOG, "host %s\n", GetHostStackName(host[0].stack));
+    PushStack (stack, STACK_BOTTOM, host, host[0].HostID, host[0].hostname);
     return (TRUE);
   }
