diff -up cups-1.4rc1/scheduler/job.c~ cups-1.4rc1/scheduler/job.c --- cups-1.4rc1/scheduler/job.c~ 2009-07-05 22:54:42.788061836 +0100 +++ cups-1.4rc1/scheduler/job.c 2009-07-06 10:36:45.465229985 +0100 @@ -3628,8 +3628,8 @@ load_job_cache(const char *filename) /* if (job->state_value <= IPP_JOB_STOPPED) { - cupsArrayAdd(ActiveJobs, job); - cupsdLoadJob(job); + if (cupsdLoadJob(job)) + cupsArrayAdd(ActiveJobs, job); } job = NULL; @@ -3882,18 +3882,19 @@ load_request_root(void) * Load the job... */ - cupsdLoadJob(job); - - /* - * Insert the job into the array, sorting by job priority and ID... - */ + if (cupsdLoadJob(job)) + { + /* + * Insert the job into the array, sorting by job priority and ID... + */ - cupsArrayAdd(Jobs, job); + cupsArrayAdd(Jobs, job); - if (job->state_value <= IPP_JOB_STOPPED) - cupsArrayAdd(ActiveJobs, job); - else - unload_job(job); + if (job->state_value <= IPP_JOB_STOPPED) + cupsArrayAdd(ActiveJobs, job); + else + unload_job(job); + } } cupsDirClose(dir);