--- ../python/lib/python2.5/site-packages/PasteScript-1.3.6-py2.5.egg/paste/script/serve.py.orig	2007-10-16 02:33:19.000000000 -0300
+++ ../python/lib/python2.5/site-packages/PasteScript-1.3.6-py2.5.egg/paste/script/serve.py	2007-10-16 02:44:37.000000000 -0300
@@ -25,6 +25,10 @@
 
 MAXFD = 1024
 
+class DaemonizeException(Exception):
+    pass
+
+
 class ServeCommand(Command):
 
     min_args = 0
@@ -201,7 +205,12 @@
             writeable_log_file.close()
 
         if self.options.daemon:
-            self.daemonize()
+            try:
+                self.daemonize()
+            except DaemonizeException, ex:
+                if self.verbose > 0:
+                    print str(ex)
+                return
 
         if self.options.pid_file:
             self.record_pid(self.options.pid_file)
@@ -250,6 +259,13 @@
                 **kw)
 
     def daemonize(self):
+        if not self.options.pid_file:
+            self.options.pid_file = 'paster.pid'
+
+        pid = live_pidfile(self.options.pid_file)
+        if pid:
+            raise DaemonizeException("Daemon is already running (PID: %s)" % (pid,))
+
         if self.verbose > 0:
             print 'Entering daemon mode'
         pid = os.fork()
@@ -287,8 +303,6 @@
         os.dup2(0, 1)  # standard output (1)
         os.dup2(0, 2)  # standard error (2)
         
-        if not self.options.pid_file:
-            self.options.pid_file = 'paster.pid'
         if not self.options.log_file:
             self.options.log_file = 'paster.log'
 

