--- memcached-1.2.3/memcached.c.save_pid_fix	2007-08-06 07:12:55.000000000 -0700
+++ memcached-1.2.3/memcached.c	2007-08-06 07:13:44.000000000 -0700
@@ -2723,11 +2723,12 @@ int main (int argc, char **argv) {
         fprintf(stderr, "failed to create listening connection");
         exit(EXIT_FAILURE);
     }
-    /* save the PID in if we're a daemon */
-    if (daemonize)
-        save_pid(getpid(), pid_file);
     /* start up worker threads if MT mode */
     thread_init(settings.num_threads, main_base);
+    /* save the PID in if we're a daemon, do this after thread_init due to 
+       a file descriptor handling bug somewhere in libevent */
+    if (daemonize)
+        save_pid(getpid(), pid_file);
     /* initialise clock event */
     clock_handler(0, 0, 0);
     /* initialise deletion array and timer event */