Index: src/ircd.c
--- src/ircd.c.orig
+++ src/ircd.c
@@ -328,7 +328,6 @@ make_daemon(void)
   }
   else if (pid > 0)
   {
-    print_startup(pid);
     exit(EXIT_SUCCESS);
   }
 
@@ -341,8 +340,19 @@ main(int argc, char *argv[])
   /* Check to see if the user is running us as root, which is a nono */
   if (geteuid() == 0)
   {
-    fprintf(stderr, "ERROR: This server won't run as root/superuser\n");
-    return -1;
+    struct passwd *pw;
+
+    if ((pw = getpwnam(IRCD_USER)) == NULL)
+    {
+      fprintf(stderr, "Don't run ircd as root!!!\n");
+      return -1;
+    }
+
+    if (setusercontext(NULL, pw, pw->pw_uid, LOGIN_SETALL) < 0)
+    {
+      fprintf(stderr, "ERROR: This server won't run as root/superuser\n");
+      return -1;
+    }
   }
 
   /* Setup corefile size immediately after boot -kre */
