87cf9a
diff -up cups-1.6.3/scheduler/ipp.c.str4648 cups-1.6.3/scheduler/ipp.c
87cf9a
--- cups-1.6.3/scheduler/ipp.c.str4648	2015-07-08 10:24:31.389942557 +0100
87cf9a
+++ cups-1.6.3/scheduler/ipp.c	2015-07-08 10:24:51.042104284 +0100
87cf9a
@@ -3392,6 +3392,8 @@ cancel_all_jobs(cupsd_client_t  *con,	/*
87cf9a
   }
87cf9a
 
87cf9a
   con->response->request.status.status_code = IPP_OK;
87cf9a
+
87cf9a
+  cupsdCheckJobs();
87cf9a
 }
87cf9a
 
87cf9a
 
87cf9a
diff -up cups-1.6.3/scheduler/job.c.str4648 cups-1.6.3/scheduler/job.c
87cf9a
--- cups-1.6.3/scheduler/job.c.str4648	2015-07-08 10:24:31.399942636 +0100
87cf9a
+++ cups-1.6.3/scheduler/job.c	2015-07-08 10:24:51.043104293 +0100
87cf9a
@@ -267,8 +267,6 @@ cupsdCancelJobs(const char *dest,	/* I -
87cf9a
 			 "Job canceled by user.");
87cf9a
     }
87cf9a
   }
87cf9a
-
87cf9a
-  cupsdCheckJobs();
87cf9a
 }
87cf9a
 
87cf9a
 
87cf9a
@@ -3488,13 +3486,6 @@ finalize_job(cupsd_job_t *job,		/* I - J
87cf9a
 
87cf9a
   job->printer->job = NULL;
87cf9a
   job->printer      = NULL;
87cf9a
-
87cf9a
- /*
87cf9a
-  * Try printing another job...
87cf9a
-  */
87cf9a
-
87cf9a
-  if (printer_state != IPP_PRINTER_STOPPED)
87cf9a
-    cupsdCheckJobs();
87cf9a
 }
87cf9a
 
87cf9a
 
87cf9a
@@ -4744,6 +4735,8 @@ update_job(cupsd_job_t *job)		/* I - Job
87cf9a
 		*ptr;			/* Pointer update... */
87cf9a
   int		loglevel,		/* Log level for message */
87cf9a
 		event = 0;		/* Events? */
87cf9a
+  cupsd_printer_t *printer = job->printer;
87cf9a
+					/* Printer */
87cf9a
   static const char * const levels[] =	/* Log levels */
87cf9a
 		{
87cf9a
 		  "NONE",
87cf9a
@@ -5063,10 +5056,11 @@ update_job(cupsd_job_t *job)		/* I - Job
87cf9a
     finalize_job(job, 1);
87cf9a
 
87cf9a
    /*
87cf9a
-    * Check for new jobs...
87cf9a
+    * Try printing another job...
87cf9a
     */
87cf9a
 
87cf9a
-    cupsdCheckJobs();
87cf9a
+    if (printer->state != IPP_PRINTER_STOPPED)
87cf9a
+      cupsdCheckJobs();
87cf9a
   }
87cf9a
 }
87cf9a