diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index 0e767de..64b229c 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* bgp_main.c: Make group to run as configurable.
+
 2004-11-09 Paul Jakma <paul@dishone.st>
 
 	* bgp_nexthop.c: collapse bgp_connected_ipvX, bgp_nexthop_cache_ipvX
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 612013e..1d6710f 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -48,6 +48,7 @@
   { "retain",      no_argument,       NULL, 'r'},
   { "no_kernel",   no_argument,       NULL, 'n'},
   { "user",        required_argument, NULL, 'u'},
+  { "group",       required_argument, NULL, 'g'},
   { "version",     no_argument,       NULL, 'v'},
   { "help",        no_argument,       NULL, 'h'},
   { 0 }
@@ -137,7 +138,8 @@
 -P, --vty_port     Set vty's port number\n\
 -r, --retain       When program terminates, retain added route by bgpd.\n\
 -n, --no_kernel    Do not install route to kernel.\n\
--u, --user         User and group to run as\n\
+-u, --user         User to run as\n\
+-g, --group        Group to run as\n\
 -v, --version      Print program version\n\
 -h, --help         Display this help and exit\n\
 \n\
@@ -212,7 +214,7 @@
   /* Command line argument treatment. */
   while (1) 
     {
-      opt = getopt_long (argc, argv, "df:i:hp:A:P:rnu:v", longopts, 0);
+      opt = getopt_long (argc, argv, "df:i:hp:A:P:rnu:g:v", longopts, 0);
     
       if (opt == EOF)
 	break;
@@ -253,9 +255,12 @@
 	case 'n':
 	  bgp_option_set (BGP_OPT_NO_FIB);
 	  break;
-  case 'u':
-    bgpd_privs.user = bgpd_privs.group = optarg;
-    break;
+	case 'u':
+	  bgpd_privs.user = optarg;
+	  break;
+	case 'g':
+	  bgpd_privs.group = optarg;
+	  break;
 	case 'v':
 	  print_version (progname);
 	  exit (0);
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 48f78c1..6afe5a3 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* *.8: Document -g/--group command line switch and some small
+	  cosmetical changes.
+
 2004-11-22 Paul Jakma <paul@dishone.st>
 
 	* bgpd.8: escape -/+ signs, reported by ESR to bug-zebra.
diff --git a/doc/bgpd.8 b/doc/bgpd.8
index 736250e..e6f5bc6 100644
--- a/doc/bgpd.8
+++ b/doc/bgpd.8
@@ -1,4 +1,4 @@
-.TH BGPD 8 "10 August 2004" "Quagga BGPD daemon" "Version 0.96.5"
+.TH BGPD 8 "25 November 2004" "Quagga BGPD daemon" "Version 0.97.3"
 .SH NAME
 bgpd \- a BGPv4, BGPv4\+, BGPv4\- routing engine for use with Quagga routing
 software
@@ -17,9 +17,6 @@
 .B \-p
 .I bgp-port-number
 ] [
-.B \--bgp_port=
-.I port-number
-] [
 .B \-P
 .I port-number
 ] [
@@ -28,6 +25,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B bgpd 
@@ -46,6 +46,9 @@
 Specifies the config file to use for startup. If not specified this
 option will likely default to \fB\fI/usr/local/etc/bgpd.conf\fR.
 .TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
+.TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
 .TP
@@ -54,7 +57,7 @@
 \fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
 restart bgpd.  The likely default is \fB\fI/var/run/bgpd.pid\fR.
 .TP
-\fB\-p\fR, \fB\-\-bgp_port=\fR\fIport\fR
+\fB\-p\fR, \fB\-\-bgp_port \fR\fIbgp-port-number\fR
 Set the port that bgpd will listen to for bgp data.  
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
@@ -66,8 +69,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBbgpd\fR.
diff --git a/doc/isisd.8 b/doc/isisd.8
index 9e33f7c..7ae7dba 100644
--- a/doc/isisd.8
+++ b/doc/isisd.8
@@ -1,4 +1,4 @@
-.TH IS-IS 8 "10 August 2004" "Quagga IS-IS daemon" "Version 0.96.5"
+.TH IS-IS 8 "25 November 2004" "Quagga IS-IS daemon" "Version 0.97.3"
 .SH NAME
 isisd \- an IS-IS routing engine for use with Quagga routing software.
 .SH SYNOPSIS
@@ -20,6 +20,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B isisd
@@ -38,6 +41,9 @@
 Specifies the config file to use for startup. If not specified this
 option will likely default to \fB\fI/usr/local/etc/isisd.conf\fR.
 .TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
+.TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
 .TP
@@ -55,8 +61,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
diff --git a/doc/ospf6d.8 b/doc/ospf6d.8
index 275844b..2266fff 100644
--- a/doc/ospf6d.8
+++ b/doc/ospf6d.8
@@ -1,4 +1,4 @@
-.TH OSPF6D 8 "10 August 2004" "Quagga OSPFv3 daemon" "Version 0.96.5"
+.TH OSPF6D 8 "25 November 2004" "Quagga OSPFv3 daemon" "Version 0.97.3"
 .SH NAME
 ospf6d \- an OSPFv3 routing engine for use with Quagga routing software.
 .SH SYNOPSIS
@@ -20,6 +20,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B ospf6d
@@ -39,6 +42,9 @@
 Specifies the config file to use for startup. If not specified this
 option will likely default to \fB\fI/usr/local/etc/ospf6d.conf\fR.
 .TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
+.TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
 .TP
@@ -56,8 +62,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
diff --git a/doc/ospfd.8 b/doc/ospfd.8
index af5a83a..c6c1857 100644
--- a/doc/ospfd.8
+++ b/doc/ospfd.8
@@ -1,4 +1,4 @@
-.TH OSPFD 8 "10 August 2004" "Quagga OSPFv2 daemon" "Version 0.96.5"
+.TH OSPFD 8 "25 November 2004" "Quagga OSPFv2 daemon" "Version 0.97.3"
 .SH NAME
 ospfd \- an OSPFv2 routing engine for use with Quagga routing software.
 .SH SYNOPSIS
@@ -20,6 +20,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B ospfd
@@ -38,6 +41,9 @@
 Specifies the config file to use for startup. If not specified this
 option will likely default to \fB\fI/usr/local/etc/ospfd.conf\fR.
 .TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
+.TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
 .TP
@@ -58,8 +64,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-a\fR, \fB\-\-apiserver \fR
 Enable OSPF apiserver. Default is disabled.
diff --git a/doc/ripd.8 b/doc/ripd.8
index 2f38682..5a9f5fa 100644
--- a/doc/ripd.8
+++ b/doc/ripd.8
@@ -1,4 +1,4 @@
-.TH RIPD 8 "10 August 2004" "Quagga RIP daemon" "Version 0.96.5"
+.TH RIPD 8 "25 November 2004" "Quagga RIP daemon" "Version 0.97.3"
 .SH NAME
 ripd \- a RIP routing engine for use with Quagga routing software.
 .SH SYNOPSIS
@@ -20,6 +20,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B ripd
@@ -36,7 +39,11 @@
 Runs in daemon mode, forking and exiting from tty.
 .TP
 \fB\-f\fR, \fB\-\-config-file \fR\fIconfig-file\fR
-Specifies the config file to use for startup. If not specified this option will likely default to \fB\fI/usr/local/etc/ripd.conf\fR.
+Specifies the config file to use for startup. If not specified this
+option will likely default to \fB\fI/usr/local/etc/ripd.conf\fR.
+.TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
@@ -55,8 +62,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBripd\fR.
diff --git a/doc/ripngd.8 b/doc/ripngd.8
index 1dee0bb..c45fc30 100644
--- a/doc/ripngd.8
+++ b/doc/ripngd.8
@@ -1,4 +1,4 @@
-.TH RIPNGD 8 "10 August 2004" "Quagga RIPNG daemon" "Version 0.96.5"
+.TH RIPNGD 8 "25 November 2004" "Quagga RIPNG daemon" "Version 0.97.3"
 .SH NAME
 ripngd \- a RIPNG routing engine for use with Quagga routing software.
 .SH SYNOPSIS
@@ -20,6 +20,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B ripngd
@@ -39,6 +42,9 @@
 Specifies the config file to use for startup. If not specified this
 option will likely default to \fB\fI/usr/local/etc/ripngd.conf\fR.
 .TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
+.TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
 .TP
@@ -59,8 +65,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBripd\fR.
diff --git a/doc/zebra.8 b/doc/zebra.8
index 25cbb36..a3f4b1a 100644
--- a/doc/zebra.8
+++ b/doc/zebra.8
@@ -1,4 +1,4 @@
-.TH ZEBRA 8 "10 August 2004" "Zebra daemon" "Version 0.96.5"
+.TH ZEBRA 8 "25 November 2004" "Zebra daemon" "Version 0.97.3"
 .SH NAME
 zebra \- a routing manager for use with associated Quagga components.
 .SH SYNOPSIS
@@ -20,6 +20,9 @@
 ] [
 .B \-u
 .I user
+] [
+.B \-g
+.I group
 ]
 .SH DESCRIPTION
 .B zebra 
@@ -40,7 +43,11 @@
 Runs in daemon mode, forking and exiting from tty.
 .TP
 \fB\-f\fR, \fB\-\-config-file \fR\fIconfig-file\fR
-Specifies the config file to use for startup. If not specified this option will likely default to \fB\fI/usr/local/etc/zebra.conf\fR.
+Specifies the config file to use for startup. If not specified this
+option will likely default to \fB\fI/usr/local/etc/zebra.conf\fR.
+.TP
+\fB\-g\fR, \fB\-\-group \fR\fIgroup\fR
+Specify the group to run as. Default is \fIquagga\fR.
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
@@ -65,8 +72,7 @@
 intrefaces.
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user and group to run as. User and group have to have same
-name at the moment. Default is \fIquagga\fR.
+Specify the user to run as. Default is \fIquagga\fR.
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBzebra\fR.
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index 20be060..9ba86f1 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* isis_main.c: Make group to run as configurable.
+
 2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* dict.c: Include "zassert.h" instead of <assert.h>.
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index 58fe977..1bf93f2 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -79,6 +79,7 @@
   {"vty_addr", required_argument, NULL, 'A'},
   {"vty_port", required_argument, NULL, 'P'},
   {"user", required_argument, NULL, 'u'},
+  {"group", required_argument, NULL, 'g'},
   {"version", no_argument, NULL, 'v'},
   {"help", no_argument, NULL, 'h'},
   {0}
@@ -121,7 +122,8 @@
 -i, --pid_file     Set process identifier file name\n\
 -A, --vty_addr     Set vty's bind address\n\
 -P, --vty_port     Set vty's port number\n\
--u, --user         User and group to run as\n\
+-u, --user         User to run as\n\
+-g, --group        Group to run as\n\
 -v, --version      Print program version\n\
 -h, --help         Display this help and exit\n\
 \n\
@@ -234,7 +236,7 @@
   /* Command line argument treatment. */
   while (1)
     {
-      opt = getopt_long (argc, argv, "df:i:hA:p:P:u:v", longopts, 0);
+      opt = getopt_long (argc, argv, "df:i:hA:p:P:u:g:v", longopts, 0);
 
       if (opt == EOF)
 	break;
@@ -267,8 +269,10 @@
 	  vty_port = (vty_port ? vty_port : ISISD_VTY_PORT);
 	  break;
 	case 'u':
-	  isisd_privs.user = isisd_privs.group = optarg;
+	  isisd_privs.user = optarg;
 	  break;
+	case 'g':
+	  isisd_privs.group = optarg;
 	  break;
 	case 'v':
 	  printf ("ISISd version %s\n", ISISD_VERSION);
diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 9c88424..27593b3 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* ospf6_main.c: Make group to run as configurable.
+
 2004-11-05 Phil Spagnolo <phillip.a.spagnolo@boeing.com>
        * ospf6_flood.c:  When adding a thread to retransmit an lsa after 
     rxmt_interval, the ospf6d used thread_add_event().  However, 
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index 95086f2..4563ece 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -74,6 +74,8 @@
   { "pid_file",    required_argument, NULL, 'i'},
   { "vty_addr",    required_argument, NULL, 'A'},
   { "vty_port",    required_argument, NULL, 'P'},
+  { "user",        required_argument, NULL, 'u'},
+  { "group",       required_argument, NULL, 'g'},
   { "version",     no_argument,       NULL, 'v'},
   { "help",        no_argument,       NULL, 'h'},
   { 0 }
@@ -109,6 +111,8 @@
 -i, --pid_file     Set process identifier file name\n\
 -A, --vty_addr     Set vty's bind address\n\
 -P, --vty_port     Set vty's port number\n\
+-u, --user         User to run as\n\
+-g, --group        Group to run as\n\
 -v, --version      Print program version\n\
 -h, --help         Display this help and exit\n\
 \n\
@@ -191,7 +195,7 @@
   /* Command line argument treatment. */
   while (1) 
     {
-      opt = getopt_long (argc, argv, "df:i:hp:A:P:u:v", longopts, 0);
+      opt = getopt_long (argc, argv, "df:i:hp:A:P:u:g:v", longopts, 0);
     
       if (opt == EOF)
         break;
@@ -224,8 +228,11 @@
           vty_port = (vty_port ? vty_port : OSPF6_VTY_PORT);
           break;
         case 'u':
-          ospf6d_privs.user = ospf6d_privs.group = optarg;
+          ospf6d_privs.user = optarg;
           break;
+	case 'g':
+	  ospf6d_privs.group = optarg;
+	  break;
         case 'v':
           print_version (progname);
           exit (0);
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 11fb3b6..40e5491 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* ospf_main.c: Make group to run as configurable.
+
 2004-11-15  Greg Troxel  <gdt@fnord.ir.bbn.com>
 
 	* ospf_packet.c (ospf_recv_packet): Assume CMSG_SPACE is present
diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
index 67912d6..f560547 100644
--- a/ospfd/ospf_main.c
+++ b/ospfd/ospf_main.c
@@ -87,6 +87,7 @@
   { "vty_addr",    required_argument, NULL, 'A'},
   { "vty_port",    required_argument, NULL, 'P'},
   { "user",        required_argument, NULL, 'u'},
+  { "group",       required_argument, NULL, 'g'},
   { "apiserver",   no_argument,       NULL, 'a'},
   { "version",     no_argument,       NULL, 'v'},
   { 0 }
@@ -119,7 +120,8 @@
 -i, --pid_file     Set process identifier file name\n\
 -A, --vty_addr     Set vty's bind address\n\
 -P, --vty_port     Set vty's port number\n\
--u, --user         User and group to run as\n\
+-u, --user         User to run as\n\
+-g, --group        Group to run as\n\
 -a. --apiserver    Enable OSPF apiserver\n\
 -v, --version      Print program version\n\
 -h, --help         Display this help and exit\n\
@@ -215,7 +217,7 @@
     {
       int opt;
 
-      opt = getopt_long (argc, argv, "dlf:i:hA:P:u:av", longopts, 0);
+      opt = getopt_long (argc, argv, "dlf:i:hA:P:u:g:av", longopts, 0);
     
       if (opt == EOF)
 	break;
@@ -248,7 +250,10 @@
           vty_port = (vty_port ? vty_port : OSPF_VTY_PORT);
   	  break;
 	case 'u':
-	  ospfd_privs.group = ospfd_privs.user = optarg;
+	  ospfd_privs.user = optarg;
+	  break;
+	case 'g':
+	  ospfd_privs.group = optarg;
 	  break;
 #ifdef SUPPORT_OSPF_API
 	case 'a':
diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index 8618cb6..3ca7d18 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* rip_main.c: Make group to run as configurable.
+
 2004-10-22 Paul Jakma <paul@dishone.st>
 
 	* ripd.c: Collapse redundant passing of various address structs,
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index bc25159..d545a8e 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -46,6 +46,7 @@
   { "vty_port",    required_argument, NULL, 'P'},
   { "retain",      no_argument,       NULL, 'r'},
   { "user",        required_argument, NULL, 'u'},
+  { "group",       required_argument, NULL, 'g'},
   { "version",     no_argument,       NULL, 'v'},
   { 0 }
 };
@@ -110,7 +111,8 @@
 -A, --vty_addr     Set vty's bind address\n\
 -P, --vty_port     Set vty's port number\n\
 -r, --retain       When program terminates, retain added route by ripd.\n\
--u, --user         User and group to run as\n\
+-u, --user         User to run as\n\
+-g, --group        Group to run as\n\
 -v, --version      Print program version\n\
 -h, --help         Display this help and exit\n\
 \n\
@@ -201,7 +203,7 @@
     {
       int opt;
 
-      opt = getopt_long (argc, argv, "df:i:hA:P:u:rv", longopts, 0);
+      opt = getopt_long (argc, argv, "df:i:hA:P:u:g:rv", longopts, 0);
     
       if (opt == EOF)
 	break;
@@ -236,9 +238,12 @@
 	case 'r':
 	  retain_mode = 1;
 	  break;
-    case 'u':
-        ripd_privs.group = ripd_privs.user = optarg;
-        break;
+	case 'u':
+	  ripd_privs.user = optarg;
+	  break;
+	case 'g':
+	  ripd_privs.group = optarg;
+	  break;
 	case 'v':
 	  print_version (progname);
 	  exit (0);
diff --git a/ripngd/ChangeLog b/ripngd/ChangeLog
index 78dc1d3..1abea56 100644
--- a/ripngd/ChangeLog
+++ b/ripngd/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-25 Hasso Tepper <hasso at quagga.net>
+
+	* ripng_main.c: Make group to run as configurable.
+
 2004-10-26 Hasso Tepper <hasso at quagga.net>
 
 	* ripng_debug.c: Fix help of "show debugging ripng" command.
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index 40d2b14..df609a5 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -53,6 +53,7 @@
   { "vty_port",    required_argument, NULL, 'P'},
   { "retain",      no_argument,       NULL, 'r'},
   { "user",        required_argument, NULL, 'u'},
+  { "group",       required_argument, NULL, 'g'},
   { "version",     no_argument,       NULL, 'v'},
   { 0 }
 };
@@ -115,7 +116,8 @@
 -A, --vty_addr     Set vty's bind address\n\
 -P, --vty_port     Set vty's port number\n\
 -r, --retain       When program terminates, retain added route by ripngd.\n\
--u, --user         User and group to run as\n\
+-u, --user         User to run as\n\
+-g, --group        Group to run as\n\
 -v, --version      Print program version\n\
 -h, --help         Display this help and exit\n\
 \n\
@@ -203,7 +205,7 @@
     {
       int opt;
 
-      opt = getopt_long (argc, argv, "dlf:i:hA:P:u:v", longopts, 0);
+      opt = getopt_long (argc, argv, "dlf:i:hA:P:u:g:v", longopts, 0);
     
       if (opt == EOF)
 	break;
@@ -241,9 +243,12 @@
 	case 'r':
 	  retain_mode = 1;
 	  break;
-  case 'u':
-    ripngd_privs.group = ripngd_privs.user = optarg;
-    break;
+	case 'u':
+	  ripngd_privs.user = optarg;
+	  break;
+	case 'g':
+	  ripngd_privs.group = optarg;
+	  break;
 	case 'v':
 	  print_version (progname);
 	  exit (0);
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index c4e32b8..7193231 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -2,6 +2,7 @@
 
 	* irdp_interface.c: Remove comment from DEFUN, it breaks vtysh because
 	  it confuses extract.pl.
+	* main.c: Make group to run as configurable.
 
 2004-10-28 Hasso Tepper <hasso at quagga.net>
 
diff --git a/zebra/main.c b/zebra/main.c
index 72e2c58..42e6bd1 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -79,6 +79,7 @@
   { "nl-bufsize",  no_argument,       NULL, 's'},
 #endif /* HAVE_NETLINK */
   { "user",        required_argument, NULL, 'u'},
+  { "group",       required_argument, NULL, 'g'},
   { "version",     no_argument,       NULL, 'v'},
   { 0 }
 };
@@ -133,7 +134,8 @@
 	      "-P, --vty_port     Set vty's port number\n"\
 	      "-r, --retain       When program terminates, retain added route "\
 				  "by zebra.\n"\
-	      "-u, --user         User and group to run as\n", progname);
+	      "-u, --user         User to run as\n"\
+	      "-g, --group	  Group to run as\n", progname);
 #ifdef HAVE_NETLINK
       printf ("-s, --nl-bufsize   Set netlink receive buffer size\n");
 #endif /* HAVE_NETLINK */
@@ -230,9 +232,9 @@
       int opt;
   
 #ifdef HAVE_NETLINK  
-      opt = getopt_long (argc, argv, "bdklf:i:hA:P:ru:vs:", longopts, 0);
+      opt = getopt_long (argc, argv, "bdklf:i:hA:P:ru:g:vs:", longopts, 0);
 #else
-      opt = getopt_long (argc, argv, "bdklf:i:hA:P:ru:v", longopts, 0);
+      opt = getopt_long (argc, argv, "bdklf:i:hA:P:ru:g:v", longopts, 0);
 #endif /* HAVE_NETLINK */
 
       if (opt == EOF)
@@ -281,9 +283,12 @@
 	  nl_rcvbufsize = atoi (optarg);
 	  break;
 #endif /* HAVE_NETLINK */
-  case 'u':
-    zserv_privs.user = zserv_privs.group = optarg;
-    break;
+	case 'u':
+	  zserv_privs.user = optarg;
+	  break;
+	case 'g':
+	  zserv_privs.group = optarg;
+	  break;
 	case 'v':
 	  print_version (progname);
 	  exit (0);
