Index: trunk/Ohana/src/opihi/pcontrol/stdout.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/stdout.c	(revision 7917)
+++ trunk/Ohana/src/opihi/pcontrol/stdout.c	(revision 8296)
@@ -3,5 +3,5 @@
 int stdout_pc (int argc, char **argv) {
 
-  int JobID;
+  int JobID, StackID;
   Job *job;
   IOBuffer *buffer;
@@ -15,24 +15,28 @@
   /* find Job of interest (must be EXIT or CRASH) */
   JobID = atoi (argv[1]);
-  job = FindJobPtr (JobID, PCONTROL_JOB_EXIT);
-  if (job == NULL) {
-    job = FindJobPtr (JobID, PCONTROL_JOB_CRASH);
-    if (job == NULL) goto missing_stdout;
-  }    
 
+  StackID = PCONTROL_JOB_EXIT;
+  job = PullJobFromStackByID (StackID, JobID);
+  if (job != NULL) goto found_stdout;
+
+  StackID = PCONTROL_JOB_CRASH;
+  job = PullJobFromStackByID (StackID, JobID);
+  if (job != NULL) goto found_stdout;
+
+  gprint (GP_ERR, "job not found in EXIT or CRASH\n");
+  gprint (GP_LOG, "STATUS %d\n", -2);
+  return (FALSE);
+
+found_stdout:
   buffer = &job[0].stdout;
   fwrite (buffer[0].buffer, 1, buffer[0].Nbuffer, stdout);
   gprint (GP_LOG, "STATUS %d\n", 0);
+  PutJob (job, StackID, STACK_BOTTOM);
   return (TRUE);
-
-missing_stdout:
-  gprint (GP_ERR, "job not found in EXIT or CRASH\n");
-  gprint (GP_LOG, "STATUS %d\n", -2);
-  return (FALSE);
 }
 
 int stderr_pc (int argc, char **argv) {
 
-  int JobID;
+  int JobID, StackID;
   Job *job;
   IOBuffer *buffer;
@@ -46,18 +50,22 @@
   /* find Job of interest (must be EXIT or CRASH) */
   JobID = atoi (argv[1]);
-  job = FindJobPtr (JobID, PCONTROL_JOB_EXIT);
-  if (job == NULL) {
-    job = FindJobPtr (JobID, PCONTROL_JOB_CRASH);
-    if (job == NULL) goto missing_stderr;
-  }    
 
+  StackID = PCONTROL_JOB_EXIT;
+  job = PullJobFromStackByID (StackID, JobID);
+  if (job != NULL) goto found_stderr;
+
+  StackID = PCONTROL_JOB_CRASH;
+  job = PullJobFromStackByID (StackID, JobID);
+  if (job != NULL) goto found_stderr;
+
+  gprint (GP_ERR, "job not found in EXIT or CRASH\n");
+  gprint (GP_LOG, "STATUS %d\n", -2);
+  return (FALSE);
+
+found_stderr:
   buffer = &job[0].stderr;
   fwrite (buffer[0].buffer, 1, buffer[0].Nbuffer, stdout);
   gprint (GP_LOG, "STATUS %d\n", 0);
+  PutJob (job, StackID, STACK_BOTTOM);
   return (TRUE);
-
-missing_stderr:
-  gprint (GP_ERR, "job not found in EXIT or CRASH\n");
-  gprint (GP_LOG, "STATUS %d\n", -2);
-  return (FALSE);
 }
