diff --git a/doc/ChangeLog b/doc/ChangeLog
index 9585316..b9326c0 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2004-08-10 Hasso Tepper <hasso at quagga.net>
+
+	* Updated man pages.
+	* Removed vty commands section from all man pages. This inf belongs to
+	  Info pages.
+	* Added isisd man page.
+
 2004-07-31 Christian Hammers <ch@lathspell.de>
 
 	* snmp.texi: update (completely rewritten almost)
diff --git a/doc/bgpd.8 b/doc/bgpd.8
index 176bbe8..6ff3fa4 100644
--- a/doc/bgpd.8
+++ b/doc/bgpd.8
@@ -1,186 +1,119 @@
-.TH BGPD 8 "July 2000" "Zebra Beast - BGPD" "Version 0.88"
-
+.TH BGPD 8 "10 August 2004" "Quagga BGPD daemon" "Version 0.96.5"
 .SH NAME
-bgpd \- a BGPv4, BGPv4+, BGPv4- routing engine for use with Zebra
+bgpd \- a BGPv4, BGPv4+, BGPv4- routing engine for use with Quagga routing
+software
 
 .SH SYNOPSIS
 .B bgpd
 [
 .B \-dhrv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-p
+.I bgp-port-number
+] [
+.B \--bgp_port=
+.I port-number
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
 ]
-[
-.B \-f config-file
-]
-[
-.B \-i pid-file
-]
-[
-.B \-p bgp-port-number
-]
-[
-.B \--bgp_port=port-number
-]
-[
-.B \-P vty-port-number
-]
-[
-.B \-A vty-address
-]
-[
-.B \-u user
-]
-
-
 .SH DESCRIPTION
 .B bgpd 
 is a routing component that works with the 
-.B zebra
+.B Quagga
 routing engine.
-
-
 .SH OPTIONS
-
+Options available for the
+.B bgpd
+command:
 .TP
 \fB\-d\fR, \fB\-\-daemon\fR
 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/bgpd.conf\fR.
-
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
-
 .TP
 \fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
 When bgpd starts its process idenifier is written to
 \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
 Set the port that bgpd will listen to for bgp data.  
-
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
 Specify the port that the bgpd VTY will listen on. This defaults to
 2605, as specified in \fI/etc/services\fR.
-
 .TP
 \fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
 Specify the address that the bgpd VTY will listen on. Default is all
 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.
-
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBbgpd\fR.
-
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
-
-
-.SH COMMANDS
-
-\fB router zebra \fR -- (Move routes into kernel table)
-\fB router bgp [AS-NUMBER] \fR
-
-\fB bgp router-id [BGP-ROUTER-ID] \fR
-
-\fB network [NETWORK] area [BGP-AREA-ID] \fR
-\fB no network [NETWORK] \fR
-
-\fB aggregate-address [NETWORK] \fR
-
-\fB neighbor [PEER-IP-ADDRESS] remote-as [REMOTE-AS] \fR
-\fB neighbor [PEER-IP-ADDRESS] version [ 4 | 4+ | 4- ] \fR
-
-\fB neighbor [PEER-IP-ADDRESS] description \fR
-\fB no neighbor [PEER-IP-ADDRESS] description \fR
-
-\fB neighbor [PEER-IP-ADDRESS] route-map [in | out] \fR
-\fB neighbor [PEER-IP-ADDRESS] distribute-list [in | out] \fR
-\fB neighbor [PEER-IP-ADDRESS] next-hop-self \fR
-\fB neighbor [PEER-IP-ADDRESS] weight [WEIGHT] \fR
-\fB neighbor [PEER-IP-ADDRESS] default-originate \fR
-\fB neighbor [PEER-IP-ADDRESS] ebgp-multihop \fR
-
-\fB neighbor [PEER-IP-ADDRESS] shutdown \fR
-\fB no neighbor [PEER-IP-ADDRESS] shutdown \fR
-
-\fB clear ip bgp [PEER-IP-ADDRESS] \fR
-
-\fB show ip bgp [NETWORK] \fR
-\fB show ip bgp reg-exp [AS-REGEXP] \fR
-\fB show ip bgp summary \fR
-\fB show ip bgp neighbor [PEER-IP-ADDRESS] \fR
-\fB show ip bgp route \fR
-
-\fB show debug \fR
-
-\fB debug bgp \fR
-\fB debug event \fR
-\fB debug update \fR
-\fB debug keepalive \fR
-
-\fB no debug event \fR
-\fB no debug update \fR
-\fB no debug keepalive \fR
-
-
 .SH FILES
-
 .TP
 .BI /usr/local/sbin/bgpd
 The default location of the 
 .B bgpd
 binary.
-
 .TP
 .BI /usr/local/etc/bgpd.conf
 The default location of the 
 .B bgpd
 config file.
-
 .TP
 .BI $(PWD)/bgpd.log 
 If the 
 .B bgpd
 process is config'd to output logs to a file, then you will find this
 file in the directory where you started \fBbgpd\fR.
-
-
 .SH WARNING
-This man page is intended as a quick reference for command line
-options, and for config file commands. The definitive document is the
-Info file \fBzebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH DIAGNOSTICS
 The bgpd process may log to standard output, to a VTY, to a log
 file, or through syslog to the system logs. \fBbgpd\fR supports many
 debugging options, see the Info file, or the source for details.
-
-
 .SH "SEE ALSO"
-References to other related man pages:
-
-ripd(8), ripngd(8), ospfd(8), ospf6d(8), zebra(8), vtysh(1)
-
-
+.BR ripd (8),
+.BR ripngd (8),
+.BR ospfd (8),
+.BR ospf6d (8),
+.BR isisd (8),
+.BR zebra (8),
+.BR vtysh (1)
 .SH BUGS
 .B bgpd
 eats bugs for breakfast. If you have food for the maintainers try 
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
 
diff --git a/doc/isisd.8 b/doc/isisd.8
new file mode 100644
index 0000000..9e33f7c
--- /dev/null
+++ b/doc/isisd.8
@@ -0,0 +1,106 @@
+.TH IS-IS 8 "10 August 2004" "Quagga IS-IS daemon" "Version 0.96.5"
+.SH NAME
+isisd \- an IS-IS routing engine for use with Quagga routing software.
+.SH SYNOPSIS
+.B isisd
+[
+.B \-dhv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
+]
+.SH DESCRIPTION
+.B isisd
+is a routing component that works with the
+.B Quagga
+routing engine.
+.SH OPTIONS
+Options available for the
+.B isisd
+command:
+.TP
+\fB\-d\fR, \fB\-\-daemon\fR
+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/isisd.conf\fR.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+A brief message.
+.TP
+\fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
+When isisd starts its process idenifier is written to
+\fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
+restart isisd.  The likely default is \fB\fI/var/run/isisd.pid\fR.
+.TP
+\fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
+Specify the port that the isisd VTY will listen on. This defaults to
+2608, as specified in \fB\fI/etc/services\fR.
+.TP
+\fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
+Specify the address that the isisd VTY will listen on. Default is all
+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.
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Print the version and exit.
+.SH FILES
+.TP
+.BI /usr/local/sbin/isisd
+The default location of the 
+.B isisd
+binary.
+.TP
+.BI /usr/local/etc/isisd.conf
+The default location of the 
+.B isisd
+config file.
+.TP
+.BI $(PWD)/isisd.log 
+If the 
+.B isisd
+process is config'd to output logs to a file, then you will find this
+file in the directory where you started \fBisisd\fR.
+.SH WARNING
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
+.SH DIAGNOSTICS
+The isisd process may log to standard output, to a VTY, to a log
+file, or through syslog to the system logs. \fBisisd\fR supports many
+debugging options, see the Info file, or the source for details.
+.SH "SEE ALSO"
+.BR bgpd (8),
+.BR ripd (8),
+.BR ripngd (8),
+.BR ospfd (8),
+.BR ospf6d (8),
+.BR zebra (8),
+.BR vtysh (1)
+.SH BUGS
+\fBisisd\fR is ALPHA quality at the moment and hasn't any way ready for
+production use.
+
+.B isisd
+eats bugs for breakfast. If you have food for the maintainers try
+.BI http://bugzilla.quagga.net
+.SH AUTHORS
+See
+.BI http://isisd.sourceforge.net
+or the Info file for an accurate list of authors.
+
diff --git a/doc/ospf6d.8 b/doc/ospf6d.8
index af3d794..275844b 100644
--- a/doc/ospf6d.8
+++ b/doc/ospf6d.8
@@ -1,144 +1,106 @@
-.TH OSPF6D 8 "July 2000" "Zebra Beast - OSPF6D" "Version 0.88"
-
+.TH OSPF6D 8 "10 August 2004" "Quagga OSPFv3 daemon" "Version 0.96.5"
 .SH NAME
-ospf6d \- an OSPF routing engine for use with Zebra and IPv6
-
+ospf6d \- an OSPFv3 routing engine for use with Quagga routing software.
 .SH SYNOPSIS
 .B ospf6d
 [
 .B \-dhv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
 ]
-[
-.B \-f config-file
-]
-[
-.B \-i pid-file
-]
-[
-.B \-P port-number
-]
-[
-.B \-A vty-address
-]
-[
-.B \-u user
-]
-
-
-
 .SH DESCRIPTION
-.B ospf6d 
-is a routing component that works with the 
-.B zebra
+.B ospf6d
+is a routing component that works with the
+.B Quagga
 routing engine.
-\fBospf6d\fR. 
-
-
 .SH OPTIONS
-
+Options available for the
+.B ospf6d
+command:
+.SH OPTIONS
 .TP
 \fB\-d\fR, \fB\-\-daemon\fR
 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/ospf6d.conf\fR.
- 
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
-
 .TP
 \fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
 When ospf6d starts its process idenifier is written to
 \fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
 restart ospf6d.  The likely default is \fB\fI/var/run/ospf6d.pid\fR.
-
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
 Specify the port that the ospf6d VTY will listen on. This defaults to
 2606, as specified in \fB\fI/etc/services\fR.
-
 .TP
 \fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
 Specify the address that the ospf6d VTY will listen on. Default is all
 intrefaces.
-
 .TP
 \fB\-u\fR, \fB\-\-user \fR\fIuser\fR
-Specify the user ... Default is \fIquagga\fR.
-
+Specify the user and group to run as. User and group have to have same
+name at the moment. Default is \fIquagga\fR.
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
-
-
-.SH COMMANDS
-
-\fB router ospf6 \fR
-\fB router zebra \fR -- (Move routes into kernel table)
-
-\fB network [NETWORK] area [OSPF6-AREA-ID] \fR
-\fB no network [NETWORK] \fR
-
-\fB show ip ospf6 interface \fR
-\fB show ip ospf6 neighbor \fR
-\fB show ip ospf6 database \fR
-\fB show ip ospf6 route \fR
-
-\fB debug ospf6 ism \fR
-\fB debug ospf6 packet \fR
-\fB debug ospf6 nsm \fR
-
-
-
 .SH FILES
-
 .TP
 .BI /usr/local/sbin/ospf6d
 The default location of the 
 .B ospf6d
 binary.
-
 .TP
 .BI /usr/local/etc/ospf6d.conf
 The default location of the 
 .B ospf6d
 config file.
-
 .TP
 .BI $(PWD)/ospf6d.log 
 If the 
 .B ospf6d
 process is config'd to output logs to a file, then you will find this
 file in the directory where you started \fBospf6d\fR.
-
-
 .SH WARNING
-This man page is intended as a quick reference for command line
-options, and for config file commands. The definitive document is the
-Info file \fBzebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH DIAGNOSTICS
 The ospf6d process may log to standard output, to a VTY, to a log
 file, or through syslog to the system logs. \fBospf6d\fR supports many
 debugging options, see the Info file, or the source for details.
-
-
 .SH "SEE ALSO"
-References to other related man pages:
-
-ripd(8), ripngd(8), ospfd(8), bgpd(8), zebra(8), vtysh(1)
-
-
+.BR bgpd (8),
+.BR ripd (8),
+.BR ripngd (8),
+.BR ospfd (8),
+.BR isisd (8),
+.BR zebra (8),
+.BR vtysh (1)
 .SH BUGS
 .B ospf6d
-eats bugs for breakfast. If you have food for the maintainers try 
+eats bugs for breakfast. If you have food for the maintainers try
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
 
diff --git a/doc/ospfd.8 b/doc/ospfd.8
index 1d28ed0..1fde900 100644
--- a/doc/ospfd.8
+++ b/doc/ospfd.8
@@ -1,147 +1,108 @@
-.TH OSPFD 8 "July 2000" "Zebra Beast - OSPFD" "Version 0.88"
-
+.TH OSPFD 8 "10 August 2004" "Quagga OSPFv2 daemon" "Version 0.96.5"
 .SH NAME
-ospfd \- an OSPF v2 routing engine for use with Zebra
-
+ospfd \- an OSPFv2 routing engine for use with Quagga routing software.
 .SH SYNOPSIS
 .B ospfd
 [
 .B \-dhlv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
 ]
-[
-.B \-f config-file
-]
-[
-.B \-i pid-file
-]
-[
-.B \-P port-number
-]
-[
-.B \-A vty-address
-]
-[
-.B \-u user
-]
-
 .SH DESCRIPTION
-.B ospfd 
-is a routing component that works with the 
-.B zebra
+.B ospfd
+is a routing component that works with the
+.B Quagga
 routing engine.
-
-
 .SH OPTIONS
-
+Options available for the
+.B ospfd
+command:
 .TP
 \fB\-d\fR, \fB\-\-daemon\fR
 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/ospfd.conf\fR.
- 
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
-
 .TP
 \fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
 When ospfd starts its process idenifier is written to
 \fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
 restart ospfd.  The likely default is \fB\fI/var/run/ospfd.pid\fR.
-
 .TP
 \fB\-l\fR, \fB\-\-log_mode\fR
 Turn verbose logging on.
-
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
 Specify the port that the ospfd VTY will listen on. This defaults to
 2604, as specified in \fB\fI/etc/services\fR.
-
 .TP
 \fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
 Specify the address that the ospfd VTY will listen on. Default is all
 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.
-
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
-
-
-.SH COMMANDS
-
-\fB router ospf \fR
-\fB router zebra \fR -- (Move routes into kernel table)
-
-\fB network [NETWORK] area [OSPF-AREA-ID] \fR
-\fB no network [NETWORK] \fR
-
-\fB show ip ospf interface \fR
-\fB show ip ospf neighbor \fR
-\fB show ip ospf database \fR
-\fB show ip ospf route \fR
-
-
-\fB debug ospf ism \fR
-\fB debug ospf packet \fR
-\fB debug ospf nsm \fR
-
-
-
 .SH FILES
-
 .TP
 .BI /usr/local/sbin/ospfd
 The default location of the 
 .B ospfd
 binary.
-
 .TP
 .BI /usr/local/etc/ospfd.conf
 The default location of the 
 .B ospfd
 config file.
-
 .TP
 .BI $(PWD)/ospfd.log 
 If the 
 .B ospfd
 process is config'd to output logs to a file, then you will find this
 file in the directory where you started \fBospfd\fR.
-
-
 .SH WARNING
-This man page is intended as a quick reference for command line
-options, and for config file commands. The definitive document is the
-Info file \fBzebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH DIAGNOSTICS
 The ospfd process may log to standard output, to a VTY, to a log
 file, or through syslog to the system logs. \fBospfd\fR supports many
 debugging options, see the Info file, or the source for details.
-
-
 .SH "SEE ALSO"
-References to other related man pages:
-
-ripd(8), ripngd(8), ospf6d(8), bgpd(8), zebra(8), vtysh(1)
-
-
+.BR bgpd (8),
+.BR ripd (8),
+.BR ripngd (8),
+.BR ospf6d (8),
+.BR isisd (8),
+.BR zebra (8),
+.BR vtysh (1)
 .SH BUGS
 .B ospfd
-eats bugs for breakfast. If you have food for the maintainers try 
+eats bugs for breakfast. If you have food for the maintainers try
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
 
diff --git a/doc/ripd.8 b/doc/ripd.8
index 90b75b9..2f38682 100644
--- a/doc/ripd.8
+++ b/doc/ripd.8
@@ -1,229 +1,107 @@
-.TH RIPD 8 "July 2000" "Zebra" "Version 0.88"
-
+.TH RIPD 8 "10 August 2004" "Quagga RIP daemon" "Version 0.96.5"
 .SH NAME
-ripd \- a RIP routing engine for use with Zebra
-
+ripd \- a RIP routing engine for use with Quagga routing software.
 .SH SYNOPSIS
 .B ripd
 [
 .B \-dhrv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
 ]
-[
-.B \-f config-file
-]
-[
-.B \-i pid-file
-]
-[
-.B \-P port-number
-]
-[
-.B \-A vty-address
-]
-[
-.B \-u user
-]
-
-
 .SH DESCRIPTION
-.B ripd 
-is a routing component that supports the 
-.B zebra
-route engine.
-.B ripd 
-supports RIPv1, RIPv2, and so forth.
-
-
+.B ripd
+is a routing component that works with the
+.B Quagga
+routing engine.
 .SH OPTIONS
-
+Options available for the
+.B ripd
+command:
+.SH OPTIONS
 .TP
 \fB\-d\fR, \fB\-\-daemon\fR
 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.
- 
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
-
 .TP
 \fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
 When ripd starts its process idenifier is written to
 \fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
 restart ripd.  The likely default is \fB\fI/var/run/ripd.pid\fR.
-
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
 Specify the port that the ripd VTY will listen on. This defaults to
 2602, as specified in \fB\fI/etc/services\fR.
-
 .TP
 \fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
 Specify the address that the ripd VTY will listen on. Default is all
 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.
-
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBripd\fR.
-
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
-
-
-.SH COMMANDS
-
-\fB router rip \fR
-\fB no router rip \fR
-
-\fB rip version [1|2] \fR
-\fB no rip version [1|2] \fR
-
-\fB network [A.B.C.D/M] \fR
-\fB no network [A.B.C.D/M] \fR
-
-\fB network [IFNAME] \fR
-\fB no network [IFNAME] \fR
-
-\fB neighbor [A.B.C.D] \fR
-\fB no neighbor [A.B.C.D] \fR
-
-\fB redistribute kernel \fR
-\fB redistribute kernel metric [METRIC]\fR
-\fB redistribute kernel route-map [ROUTE-MAP]\fR
-\fB no redistribute kernel \fR
-
-\fB redistribute static \fR
-\fB redistribute static metric [METRIC]\fR
-\fB redistribute static route-map [ROUTE-MAP]\fR
-\fB no redistribute static \fR
-
-\fB redistribute connected \fR
-\fB redistribute connected metric [METRIC]\fR
-\fB redistribute connected route-map [ROUTE-MAP]\fR
-\fB no redistribute connected \fR
-
-\fB redistribute ospf \fR
-\fB redistribute ospf metric [METRIC]\fR
-\fB redistribute ospf route-map [ROUTE-MAP]\fR
-\fB no redistribute ospf \fR
-
-\fB redistribute bgp \fR
-\fB redistribute bgp metric [METRIC]\fR
-\fB redistribute bgp route-map [ROUTE-MAP]\fR
-\fB no redistribute bgp \fR
-
-\fB route [A.B.C.D/M] \fR
-\fB no route [A.B.C.D/M] \fR
-
-\fB default-information originate \fR
-\fB no default-information originate \fR
-
-\fB default-metric [METRIC] \fR
-\fB no default-metric [METRIC] \fR
-
-\fB passive-interface [IFNAME] \fR
-\fB no passive-interface [IFNAME] \fR
-
-\fB offset-list [ACCESS-LIST] [in|out]\fR
-\fB offset-list [ACCESS-LIST] [in|out] [IFNAME]\fR
-\fB no offset-list [ACCESS-LIST] [in|out]\fR
-
-\fB timers basic [UPDATE-INTERVAL] [INVALID] [TIMEOUT] [GARBAGE-COLLECT] \fR
-\fB no timers basic \fR
-
-\fB distribute-list [ACCESS-LIST] [in|out] [IFNAME] \fR
-\fB no distribute-list [ACCESS-LIST] [in|out] [IFNAME] \fR
-
-\fB distribute-list prefix [PREFIX-LIST] [in|out] [IFNAME] \fR
-\fB no distribute-list prefix [PREFIX-LIST] [in|out] [IFNAME] \fR
-
-\fB distance [DISTANCE] \fR
-\fB no distance [DISTANCE] \fR
-
-\fB distance [DISTANCE] [A.B.C.D/M] \fR
-\fB no distance [DISTANCE] [A.B.C.D/M] \fR
-
-\fB distance [DISTANCE] [A.B.C.D/M] [ACCESS-LIST]\fR
-\fB no distance [DISTANCE] [A.B.C.D/M] [ACCESS-LIST]\fR
-
-\fB ip rip send version [VERSION] \fR
-\fB no ip rip send version [VERSION] \fR
-\fB ip rip receive version [VERSION] \fR
-\fB no ip rip receive version [VERSION] \fR
-
-\fB ip rip authentication mode [md5|text]\fR
-\fB no ip rip authentication mode [md5|text]\fR
-
-\fB ip rip authentication key-chain [KEY-CHAIN]\fR
-\fB no ip rip authentication key-chain [KEY-CHAIN]\fR
-
-\fB ip rip authentication string [STRING]\fR
-\fB no ip rip authentication string [STRING]\fR
-
-\fB ip spli-horizon\fR
-\fB no ip spli-horizon\fR
-
-\fB show ip rip \fR
-\fB show ip protocols \fR
-\fB show debugging rip \fR
-
-\fB debug rip \fR
-\fB debug rip events \fR
-\fB debug rip packet \fR
-\fB debug rip zebra \fR
-
 .SH FILES
-
 .TP
 .BI /usr/local/sbin/ripd
 The default location of the 
 .B ripd
 binary.
-
 .TP
 .BI /usr/local/etc/ripd.conf
 The default location of the 
 .B ripd
 config file.
-
 .TP
 .BI $(PWD)/ripd.log 
 If the 
 .B ripd
 process is config'd to output logs to a file, then you will find this
 file in the directory where you started \fBripd\fR.
-
-
 .SH WARNING
-This man page is intended as a quick reference for command line options, and for config file commands. The definitive document is the Info file \fBzebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH DIAGNOSTICS
-The ripd process may log to standard output, to a VTY, to a log file, or through syslog to the system logs. 
-.B ripd
-supports many debugging options, see the Info file, or the source for details.
-
-
+The ripd process may log to standard output, to a VTY, to a log
+file, or through syslog to the system logs. \fBripd\fR supports many
+debugging options, see the Info file, or the source for details.
 .SH "SEE ALSO"
-References to other related man pages:
-
-ripngd(8), ospfd(8), ospf6d(8), bgpd(8), zebra(8)
-
-
-
+.BR bgpd (8),
+.BR ripngd (8),
+.BR ospfd (8),
+.BR ospf6d (8),
+.BR isisd (8),
+.BR zebra (8),
+.BR vtysh (1)
 .SH BUGS
 .B ripd
-eats bugs for breakfast. If you have food for the maintainers try 
+eats bugs for breakfast. If you have food for the maintainers try
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
diff --git a/doc/ripngd.8 b/doc/ripngd.8
index de64ce8..1dee0bb 100644
--- a/doc/ripngd.8
+++ b/doc/ripngd.8
@@ -1,160 +1,112 @@
-.TH RIPNGD 8 "July 2000" "Zebra Beast - RIPNGD" "Version 0.88"
-
+.TH RIPNGD 8 "10 August 2004" "Quagga RIPNG daemon" "Version 0.96.5"
 .SH NAME
-ripngd \- a RIP routing engine for use with Zebra and IPv6
-
+ripngd \- a RIPNG routing engine for use with Quagga routing software.
 .SH SYNOPSIS
 .B ripngd
 [
 .B \-dhlrv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
 ]
-[
-.B \-f config-file
-]
-[
-.B \-i pid-file
-]
-[
-.B \-P port-number
-]
-[
-.B \-A vty-address
-]
-[
-.B \-u user
-]
-
-
 .SH DESCRIPTION
-.B ripngd 
-is a routing component that works with the 
-.B zebra
+.B ripngd
+is a routing component that works with the
+.B Quagga
 routing engine.
-
-
-
 .SH OPTIONS
-
+Options available for the
+.B ripngd
+command:
+.SH OPTIONS
 .TP
 \fB\-d\fR, \fB\-\-daemon\fR
 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/ripngd.conf\fR.
- 
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
-
 .TP
 \fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
 When ripngd starts its process idenifier is written to
 \fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
 restart ripngd.  The likely default is \fB\fI/var/run/ripngd.pid\fR.
-
 .TP
 \fB\-l\fR, \fB\-\-log_mode\fR 
 Turn verbose logging on.
-
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
 Specify the port that the ripngd VTY will listen on. This defaults to
 2603, as specified in \fB\fI/etc/services\fR.
-
 .TP
 \fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
 Specify the address that the ripngd VTY will listen on. Default is all
 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.
-
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBripd\fR.
-
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
-
-
-.SH COMMANDS
-
-\fB router ripng \fR
-\fB router zebra \fR -- (Move routes into kernel table)
-
-\fB network [NETWORK] \fR
-\fB no network [NETWORK] \fR
-
-\fB network [IFNAME] \fR
-\fB no network [IFNAME] \fR
-
-\fB route [NETWORK] \fR
-\fB no route [NETWORK] \fR
-
-\fB flush_timer [FLUSH] \fR
-
-\fB distribute-list [ACCESS-LIST] [in|out] [IFNAME] \fR
-
-\fB show ip ripng \fR
-\fB show debugging ripng \fR
-
-\fB debug ripng \fR
-\fB debug ripng events \fR
-\fB debug ripng packet \fR
-\fB debug ripng zebra \fR
-
-
-
 .SH FILES
-
 .TP
 .BI /usr/local/sbin/ripngd
 The default location of the 
 .B ripngd
 binary.
-
 .TP
 .BI /usr/local/etc/ripngd.conf
 The default location of the 
 .B ripngd
 config file.
-
 .TP
 .BI $(PWD)/ripngd.log 
 If the 
 .B ripngd
 process is config'd to output logs to a file, then you will find this
 file in the directory where you started \fBripngd\fR.
-
-
 .SH WARNING
-This man page is intended as a quick reference for command line
-options, and for config file commands. The definitive document is the
-Info file \fBzebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH DIAGNOSTICS
 The ripngd process may log to standard output, to a VTY, to a log
 file, or through syslog to the system logs. \fBripngd\fR supports many
 debugging options, see the Info file, or the source for details.
-
-
 .SH "SEE ALSO"
-References to other related man pages:
-
-ripd(8), ospfd(8), ospf6d(8), bgpd(8), zebra(8), vtysh(1)
-
+.BR bgpd (8),
+.BR ripd (8),
+.BR ospfd (8),
+.BR ospf6d (8),
+.BR isisd (8),
+.BR zebra (8),
+.BR vtysh (1)
 .SH BUGS
 .B ripngd
-eats bugs for breakfast. If you have food for the maintainers try 
+eats bugs for breakfast. If you have food for the maintainers try
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
 
diff --git a/doc/vtysh.1 b/doc/vtysh.1
index 7422fa5..f6ad62b 100644
--- a/doc/vtysh.1
+++ b/doc/vtysh.1
@@ -1,72 +1,79 @@
-.TH VTYSH 1 "July 2000" "Zebra Beast - VTY shell" "Version 0.88"
-
+.TH VTYSH 1 "10 August 2004" "Quagga VTY shell" "Version 0.96.5"
 .SH NAME
-vtysh \- a integrated shell for Zebra routing software
-
+vtysh \- a integrated shell for Quagga routing software
 .SH SYNOPSIS
 .B vtysh
 [
-.B \-e command
+.B \-b
 ]
-
-.SH DESCBGPTION
+.br
+.B vtysh
+[
+.B \-c
+.I command
+]
+.SH DESCRIPTION
 .B vtysh
 is a integrated shell for
-.B Zebra
+.B Quagga
 routing engine.
-
-
 .SH OPTIONS
+Options available for the
+.B vtysh
+command:
+.IP "\fB\-b, \-\-boot\fP"
+Execute boot startup configuration. It makes sense only if integrated config
+file is in use (not default in Quagga). See Info file \fBQuagga\fR for more
+info.
+.IP "\fB\-c, \-\-command \fIcommand\fP"
+Specify command to be executed under batch mode. It behaves like -c option in
+any other shell -
+.I command
+is executed and vtysh exits.
 
-.TP
-\fB\-c
-Specify command to be executed under batch mode.
-
-
-.SH COMMANDS
-
-\fB Almost Zebra commands.
-
-\fB ping
-\fB traceroute
-\fB telnnet
-
-\fB start-shell
-\fB start-shell bash
-\fB start-shell zsh
-
+It's useful for gathering info from Quagga routing software from shell scripts
+etc.
+.IP "\fB\-e, \-\-execute \fIcommand\fP"
+Alias for -c. It's only for compatibility with Zebra routing software and older
+Quagga versions and this might be removed in future.
+.IP "\fB\-h, \-\-help\fP"
+Display a usage message on standard output and exit.
 .SH ENVIRONMENT VARIABLES
-
 .IP "\fBVTYSH_PAGER\fR"
 This should be the name of the pager to use. Default is \fBmore\fR.
-
 .SH FILES
-
 .TP
-.BI /usr/local/etc/Zebra.conf
+.BI /usr/local/etc/vtysh.conf
 The default location of the 
 .B vtysh
 config file.
-
-
+.TP
+.BI /usr/local/etc/Quagga.conf
+The default location of the integrated Quagga routing engine config file
+if integrated config file is in use (not default).
 .SH WARNING
-This man page is intended as a quick reference for command line
-options, and for config file commands. The definitive document is the
-Info file \fBZebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH "SEE ALSO"
-References to other related man pages:
-
-bgpd(8), ripd(8), ripngd(8), ospfd(8), ospf6d(8), zebra(8)
-
-
+.BR bgpd (8),
+.BR ripd (8),
+.BR ripngd (8),
+.BR ospfd (8),
+.BR ospf6d (8),
+.BR isisd (8),
+.BR zebra (8)
 .SH BUGS
+Running the command which outputs large amount of data through pager ("show ip
+ospf database", "show ip bgp" etc. in big networks) will cause daemon to be
+unresponsive until vtysh returns back to the prompt.
+
 .B vtysh
 eats bugs for breakfast. If you have food for the maintainers try 
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
 
diff --git a/doc/zebra.8 b/doc/zebra.8
index e3e974b..8f83015 100644
--- a/doc/zebra.8
+++ b/doc/zebra.8
@@ -1,163 +1,118 @@
-.TH ZEBRA 8 "July 2000" "Zebra" "Version 0.88"
-
+.TH ZEBRA 8 "10 August 2004" "Zebra daemon" "Version 0.96.5"
 .SH NAME
-zebra \- a routing manager for use with associated components
-
+zebra \- a routing manager for use with associated Quagga components.
 .SH SYNOPSIS
 .B zebra
 [
 .B \-bdhklrv
+] [
+.B \-f
+.I config-file
+] [
+.B \-i
+.I pid-file
+] [
+.B \-P
+.I port-number
+] [
+.B \-A
+.I vty-address
+] [
+.B \-u
+.I user
 ]
-[
-.B \-f config-file
-]
-[
-.B \-i pid-file
-]
-[
-.B \-P port-number
-]
-[
-.B \-A vty-address
-]
-[
-.B \-u user
-]
-
-
 .SH DESCRIPTION
 .B zebra 
 is a routing manager that implements the 
 .B zebra
 route engine.
 .B zebra 
-supports RIPv1, RIPv2, RIPng, OSPF, OSPF6, BGP4+, and BGP4-.
-
-
+supports RIPv1, RIPv2, RIPng, OSPF, OSPF6, IS-IS, BGP4+, and BGP4-.
 .SH OPTIONS
-
+Options available for the
+.B zebra
+command:
 .TP
 \fB\-b\fR, \fB\-\-batch\fR
 Runs in batch mode, \fBzebra\fR parses its config and exits.
-
 .TP
 \fB\-d\fR, \fB\-\-daemon\fR
 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.
- 
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 A brief message.
-
 .TP
 \fB\-i\fR, \fB\-\-pid_file \fR\fIpid-file\fR
 When zebra starts its process idenifier is written to
 \fB\fIpid-file\fR.  The init system uses the recorded PID to stop or
 restart zebra.  The likely default is \fB\fI/var/run/zebra.pid\fR.
-
 .TP
 \fB\-k\fR, \fB\-\-keep_kernel\fR
 On startup, don't delete self inserted routes.
-
 .TP
 \fB\-l\fR, \fB\-\-log_mode\fR
 Turn verbose logging on.
-
 .TP
 \fB\-P\fR, \fB\-\-vty_port \fR\fIport-number\fR 
 Specify the port that the zebra VTY will listen on. This defaults to
 2602, as specified in \fB\fI/etc/services\fR.
-
 .TP
 \fB\-A\fR, \fB\-\-vty_addr \fR\fIvty-address\fR
 Specify the address that the zebra VTY will listen on. Default is all
 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.
-
 .TP
 \fB\-r\fR, \fB\-\-retain\fR 
 When the program terminates, retain routes added by \fBzebra\fR.
-
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 Print the version and exit.
-
-
-.SH COMMANDS
-
-\fB table [TABLENO] \fR -- for use with multi-table kernels 
-
-\fB ip route [NETWORK] [GATEWAY] \fR
-\fB ipv6 route [NETWORK] [GATEWAY] \fR
-
-\fB show ip route \fR
-\fB show ipv6 route \fR
-\fB show interface \fR
-\fB show ipforward \fR
-\fB show ipv6forward \fR
-
-.TP
-\fB interface [IFNAME] \fR
-\fB shutdown \fR
-\fB no shutdown \fR
-\fB ip address [IP-ADDRESS] \fR
-\fB description [DESCRIPTION] \fR
-\fB multicast \fR
-\fB no multicast \fR
-
-
 .SH FILES
-
 .TP
 .BI /usr/local/sbin/zebra
 The default location of the 
 .B zebra
 binary.
-
 .TP
 .BI /usr/local/etc/zebra.conf
 The default location of the 
 .B zebra
 config file.
-
 .TP
 .BI $(PWD)/zebra.log 
 If the 
 .B zebra
 process is config'd to output logs to a file, then you will find this
 file in the directory where you started \fBzebra\fR.
-
-
 .SH WARNING
-This man page is intended as a quick reference for command line options, and for config file commands. The definitive document is the Info file \fBzebra\fR.
-
-
+This man page is intended to be a quick reference for command line
+options. The definitive document is the Info file \fBQuagga\fR.
 .SH DIAGNOSTICS
-The zebra process may log to standard output, to a VTY, to a log file, or through syslog to the system logs. 
-.B zebra
-supports many debugging options, see the Info file, or the source for details.
-
-
+The zebra process may log to standard output, to a VTY, to a log
+file, or through syslog to the system logs. \fBzebra\fR supports many
+debugging options, see the Info file, or the source for details.
 .SH "SEE ALSO"
-References to other related man pages:
-
-ripngd(8), ospfd(8), ospf6d(8), bgpd(8), zebra(8), vtysh(1)
-
-
-
+.BR bgpd (8),
+.BR ripd (8),
+.BR ripngd (8),
+.BR ospfd (8),
+.BR ospf6d (8),
+.BR isisd (8),
+.BR vtysh (1)
 .SH BUGS
 .B zebra
-eats bugs for breakfast. If you have food for the maintainers try 
+eats bugs for breakfast. If you have food for the maintainers try
 .BI http://bugzilla.quagga.net
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
+.SH AUTHORS
+See
+.BI http://www.zebra.org
+and
+.BI http://www.quagga.org
+or the Info file for an accurate list of authors.
 
