diff --git a/lib/ChangeLog b/lib/ChangeLog
index 22f60c2..a91901c 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,11 @@
+2004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+	
+	* pid_output.c: (pid_output_lock) Eliminate static function, and just
+	  use the #ifdef to decide which version of the function to include.
+	  This eliminates a compilation problem with gcc4.  And fix the
+	  non-fcntl version so that it actually compiles.  Exit with
+	  status 1 instead of -1 on error.
+
 2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* sigevent.c: (trap_default_signals) Ignore SIGPIPE instead of exiting.
diff --git a/lib/pid_output.c b/lib/pid_output.c
index 11e1243..a098c63 100644
--- a/lib/pid_output.c
+++ b/lib/pid_output.c
@@ -25,13 +25,14 @@
 #include <log.h>
 #include "version.h"
 
+#ifndef HAVE_FCNTL
+
 pid_t
 pid_output (const char *path)
 {
-#ifndef HAVE_FCNTL
   FILE *fp;
   pid_t pid;
-  mask_t oldumask;
+  mode_t oldumask;
 
   pid = getpid();
 
@@ -42,20 +43,20 @@
       fprintf (fp, "%d\n", (int) pid);
       fclose (fp);
       umask(oldumask);
-      return -1;
+      return pid;
     }
+  /* XXX Why do we continue instead of exiting?  This seems incompatible
+     with the behavior of the fcntl version below. */
+  zlog_warn("Can't fopen pid lock file %s (%s), continuing",
+	    path, safe_strerror(errno));
   umask(oldumask);
-  return pid;
-#else
-  static pid_t pid_output_lock (const char *);
-
-  return pid_output_lock(path);
-#endif /* HAVE_FCNTL */
+  return -1;
 }
 
-#ifdef HAVE_FCNTL
-static pid_t
-pid_output_lock (const char *path)
+#else /* HAVE_FCNTL */
+
+pid_t
+pid_output (const char *path)
 {
   int tmp;
   int fd;
@@ -68,12 +69,12 @@
 
   oldumask = umask(0777 & ~LOGFILE_MASK);
   fd = open (path, O_RDWR | O_CREAT, LOGFILE_MASK);
-      if (fd < 0)
-        {
-        zlog_err( "Can't creat pid lock file %s (%s), exit", 
-                 path, safe_strerror(errno));
+  if (fd < 0)
+    {
+      zlog_err("Can't create pid lock file %s (%s), exiting",
+	       path, safe_strerror(errno));
       umask(oldumask);
-      exit (-1);
+      exit(1);
     }
   else
     {
@@ -87,8 +88,8 @@
 
       if (fcntl(fd, F_SETLK, &lock) < 0)
         {
-          zlog_err("Could not lock pid_file %s, exit", path);
-          exit (-1);
+          zlog_err("Could not lock pid_file %s, exiting", path);
+          exit(1);
         }
 
       sprintf (buf, "%d\n", (int) pid);
@@ -102,4 +103,5 @@
     }
   return pid;
 }
+
 #endif /* HAVE_FCNTL */
