diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 11c73ce..562afc2 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -67,6 +67,7 @@
   { "no_kernel",   no_argument,       NULL, 'n'},
   { "user",        required_argument, NULL, 'u'},
   { "group",       required_argument, NULL, 'g'},
+  { "skip_runas",  no_argument,       NULL, 'S'},
   { "version",     no_argument,       NULL, 'v'},
   { "dryrun",      no_argument,       NULL, 'C'},
   { "help",        no_argument,       NULL, 'h'},
@@ -161,6 +162,7 @@
 -n, --no_kernel    Do not install route to kernel.\n\
 -u, --user         User to run as\n\
 -g, --group        Group to run as\n\
+-S, --skip_runas   Skip user and group run as\n\
 -v, --version      Print program version\n\
 -C, --dryrun       Check configuration for validity and exit\n\
 -h, --help         Display this help and exit\n\
@@ -200,7 +202,8 @@
   if (! retain_mode) 
     {
       bgp_terminate ();
-      zprivs_terminate (&bgpd_privs);
+      if (bgpd_privs.user)      /* NULL if skip_runas flag set */
+        zprivs_terminate (&bgpd_privs);
     }
 
   bgp_exit (0);
@@ -346,6 +349,7 @@
   char *progname;
   struct thread thread;
   int tmp_port;
+  int skip_runas = 0;
 
   /* Set umask before anything for security */
   umask (0027);
@@ -362,7 +366,7 @@
   /* Command line argument treatment. */
   while (1) 
     {
-      opt = getopt_long (argc, argv, "df:i:z:hp:l:A:P:rnu:g:vC", longopts, 0);
+      opt = getopt_long (argc, argv, "df:i:z:hp:l:A:P:rnu:g:vCS", longopts, 0);
     
       if (opt == EOF)
 	break;
@@ -420,6 +424,9 @@
 	case 'g':
 	  bgpd_privs.group = optarg;
 	  break;
+	case 'S':   /* skip run as = override bgpd_privs */
+          skip_runas = 1;
+	  break;
 	case 'v':
 	  print_version (progname);
 	  exit (0);
@@ -439,6 +446,8 @@
   /* Initializations. */
   srandom (time (NULL));
   signal_init (bm->master, array_size(bgp_signals), bgp_signals);
+  if (skip_runas)
+    memset (&bgpd_privs, 0, sizeof (bgpd_privs));
   zprivs_init (&bgpd_privs);
   cmd_init (1);
   vty_init (bm->master);
diff --git a/doc/bgpd.8 b/doc/bgpd.8
index 8daaefa..1a873b4 100644
--- a/doc/bgpd.8
+++ b/doc/bgpd.8
@@ -6,7 +6,7 @@
 .SH SYNOPSIS
 .B bgpd
 [
-.B \-dhrv
+.B \-dhrSv
 ] [
 .B \-f
 .I config-file
@@ -74,6 +74,9 @@
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBbgpd\fR.
 .TP
+\fB\-S\fR, \fB\-\-skip_runas\fR 
+Skip setting the process effective user and group.
+.TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
 .SH FILES
