* As soon as we have written the PID file, we can switch
     * to the user and group ID indicated by the --user option
     */
-   write_pid_file();
-
+   if (pidfile != NULL)
+   {
+      write_pid_file(pidfile);
+   }
    if (NULL != pw)
    {
       if (setgid((NULL != grp) ? grp->gr_gid : pw->pw_gid))
 
 #include "project.h"
 #include "miscutil.h"
 #include "errlog.h"
-#include "jcc.h"
 
 const char miscutil_h_rcs[] = MISCUTIL_H_VERSION;
 
  * Description :  Writes a pid file with the pid of the main process.
  *                Exits if the file can't be opened
  *
- * Parameters  :  None
+ * Parameters  :
+ *          1  :  pidfile = Path of the pidfile that gets created.
  *
  * Returns     :  N/A
  *
  *********************************************************************/
-void write_pid_file(void)
+void write_pid_file(const char *pidfile)
 {
    FILE   *fp;
 
-   /*
-    * If no --pidfile option was given,
-    * we can live without one.
-    */
-   if (pidfile == NULL) return;
-
    if ((fp = fopen(pidfile, "w")) == NULL)
    {
       log_error(LOG_LEVEL_FATAL, "can't open pidfile '%s': %E", pidfile);
 
 extern void *malloc_or_die(size_t buffer_size);
 
 #if defined(unix)
-extern void write_pid_file(void);
+extern void write_pid_file(const char *pidfile);
 #endif /* unix */
 
 extern unsigned int hash_string(const char* s);