Index: trunk/Ohana/src/opihi/pcontrol/JobOps.c
===================================================================
--- trunk/Ohana/src/opihi/pcontrol/JobOps.c	(revision 3204)
+++ trunk/Ohana/src/opihi/pcontrol/JobOps.c	(revision 3212)
@@ -37,5 +37,5 @@
 int PutJob (Job *job, int StackID, int where) {
 
-  int status;
+  int stat;
   Stack *stack;
 
@@ -46,6 +46,7 @@
   job[0].state = StackID;
   job[0].stack = StackID;
-  status = PutStack (stack, where, job);
-  return (status);
+  stat = PutStack (stack, where, job);
+  /* status (0, NULL); */
+  return (stat);
 }
   
@@ -72,5 +73,5 @@
 
   for (i = 0; i < stack[0].Nobject; i++) {
-    job = (Job *) stack[0].object;
+    job = (Job *) stack[0].object[i];
     if (job[0].JobID == JobID) {
       return (i);
@@ -163,5 +164,29 @@
 
 void LinkJobAndHost (Job *job, Host *host) {
+  int N;
+
   job[0].host = host;
   host[0].job = job;
+
+# if (0)
+  /*** need to pop host off of correct stack XXX ***/
+  N = FindHost (host[0].HostID, host[0].stack);
+  if (N < 0) {
+    fprintf (stderr, "programming error: host is not found in current stack\n");
+    exit (2);
+  }
+  host = GetHost (host[0].stack, N);
+# endif
+
+  /*** need to pop job off of correct stack XXX ***/
+  N = FindJob (job[0].JobID, job[0].stack);
+  if (N < 0) {
+    fprintf (stderr, "programming error: job is not found in current stack\n");
+    exit (2);
+  }
+  job = GetJob (job[0].stack, N);
+
+  /*** this is fairly crazy : the only reason this works is cause I 
+       get the same host ptr here and in CheckIdleHost 
+  ***/
 }
