Index: Makedefs.in
--- Makedefs.in.orig	2009-05-27 01:27:06 +0200
+++ Makedefs.in	2009-08-29 09:57:23 +0200
@@ -258,7 +258,6 @@
 # Rules...
 #
 
-.SILENT:
 .SUFFIXES:	.1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .32.o .64.o .gz
 
 .c.o:
Index: configure
--- configure.orig	2009-08-28 17:35:34 +0200
+++ configure	2009-08-29 09:56:53 +0200
@@ -10102,7 +10102,7 @@
 
 if test x$cachedir = x; then
 	if test "x$uname" = xDarwin; then
-		CUPS_CACHEDIR="$localstatedir/spool/cups/cache"
+		CUPS_CACHEDIR="$localstatedir/spool/cache"
 	else
 		CUPS_CACHEDIR="$localstatedir/cache/cups"
 	fi
@@ -10256,9 +10256,9 @@
 
 
 # Longer-term spool data
-CUPS_REQUESTS="$localstatedir/spool/cups"
+CUPS_REQUESTS="$localstatedir/spool"
 cat >>confdefs.h <<_ACEOF
-#define CUPS_REQUESTS "$localstatedir/spool/cups"
+#define CUPS_REQUESTS "$localstatedir/spool"
 _ACEOF
 
 
Index: scheduler/main.c
--- scheduler/main.c.orig	2009-05-18 17:43:32 +0200
+++ scheduler/main.c	2009-08-29 09:56:53 +0200
@@ -404,6 +404,25 @@
 
     chdir("/");
 
+   /*
+    * Write PID file
+    */
+#ifdef PID_FILE
+    {
+      mode_t old_umask;
+      pid_t  pid;
+      FILE   *fp;
+
+      old_umask = umask((mode_t) 0022);
+      pid = getpid();
+      if ((fp = fopen(PID_FILE, "w")) == NULL)
+        syslog(LOG_ERR, "cannot write PID file '%s'", PID_FILE);
+      fprintf(fp, "%ld\n", (long)pid);
+      fclose(fp);
+      umask(old_umask);
+    }
+#endif
+
 #ifndef DEBUG
    /*
     * Disable core dumps...
