Index: src/server/svr_jobfunc.c =================================================================== --- src/server/svr_jobfunc.c (revision 3907) +++ src/server/svr_jobfunc.c (working copy) @@ -367,11 +367,13 @@ } else { + list_link *jobs_array_sum = &pjob->ji_jobs_array_sum; /* link after 'current' job in server's list */ - /* only link if it isn't the same job - it may already be inserted - * if submitted to a routing queue */ - if (strcmp(pjcur->ji_qs.ji_jobid,pjob->ji_qs.ji_jobid)) + /* only link if it isn't already inserted. routing queues, + * remapping, etc. can mean it was already inserted */ + if ((jobs_array_sum->ll_prior == jobs_array_sum) && + (jobs_array_sum->ll_next == jobs_array_sum)) { insert_link(&pjcur->ji_jobs_array_sum, &pjob->ji_jobs_array_sum, pjob,LINK_INSET_AFTER);