Index: job.c
===================================================================
--- job.c	(revision 6588)
+++ job.c	(working copy)
@@ -3519,9 +3519,14 @@
     }
     else if (loglevel == CUPSD_LOG_STATE)
     {
-      cupsdSetPrinterReasons(job->printer, message);
-      cupsdAddPrinterHistory(job->printer);
-      event |= CUPSD_EVENT_PRINTER_STATE_CHANGED;
+      if (!strcmp(message, "paused"))
+        cupsdStopPrinter(job->printer, 1);
+      else
+      {
+	cupsdSetPrinterReasons(job->printer, message);
+	cupsdAddPrinterHistory(job->printer);
+	event |= CUPSD_EVENT_PRINTER_STATE_CHANGED;
+      }
     }
     else if (loglevel == CUPSD_LOG_ATTR)
     {
