diff -ruN --exclude=Makefile torque-1.2.0p5_orig/src/server/job_func.c torque-1.2.0p5/src/server/job_func.c --- torque-1.2.0p5_orig/src/server/job_func.c 2005-06-03 09:41:23.000000000 -0700 +++ torque-1.2.0p5/src/server/job_func.c 2005-07-26 13:59:16.000000000 -0700 @@ -349,6 +349,11 @@ issue_track(pjob); } + if (pjob->ji_wattr[(int)JOB_ATR_depend].at_flags & ATR_VFLAG_SET) + { + depend_on_term(pjob); + } + job_purge(pjob); *pjobp = NULL; @@ -376,6 +381,11 @@ issue_track(pjob); } + if (pjob->ji_wattr[(int)JOB_ATR_depend].at_flags & ATR_VFLAG_SET) + { + depend_on_term(pjob); + } + job_purge(pjob); *pjobp = NULL; diff -ruN --exclude=Makefile torque-1.2.0p5_orig/src/server/req_register.c torque-1.2.0p5/src/server/req_register.c --- torque-1.2.0p5_orig/src/server/req_register.c 2005-07-25 14:29:15.000000000 -0700 +++ torque-1.2.0p5/src/server/req_register.c 2005-07-26 13:59:42.000000000 -0700 @@ -869,10 +869,13 @@ { case JOB_DEPEND_TYPE_BEFOREOK: - if (exitstat == 0) - op = JOB_DEPEND_OP_RELEASE; - else + if (pjob->ji_qs.ji_substate == JOB_SUBSTATE_ABORT) op = JOB_DEPEND_OP_DELETE; + else + if (exitstat == 0) + op = JOB_DEPEND_OP_RELEASE; + else + op = JOB_DEPEND_OP_DELETE; break;