diff --git a/doc/avrdude.texi b/doc/avrdude.texi
index c76b74f8..75e094af 100644
--- a/doc/avrdude.texi
+++ b/doc/avrdude.texi
@@ -103,6 +103,9 @@ For avrdude version @value{VERSION}, @value{UPDATED}.
 * Platform Dependent Information::  
 @end menu
 
+@c
+@c Node
+@c
 @node Introduction, Command Line Options, Top, Top
 @comment  node-name,  next,  previous,  up
 @chapter Introduction
@@ -140,6 +143,9 @@ programming function.
 * History::                     
 @end menu
 
+@c
+@c Node
+@c
 @node History,  , Introduction, Introduction
 @section History
 
@@ -165,6 +171,9 @@ formatting was modeled after that of the Simulavr documentation by Ted
 Roth.
 
 
+@c
+@c Node
+@c
 @node Command Line Options, Terminal Mode Operation, Introduction, Top
 @chapter Command Line Options
 @cindex options
@@ -174,6 +183,9 @@ Roth.
 * Example Command Line Invocations::  
 @end menu
 
+@c
+@c Node
+@c
 @node Option Descriptions, Example Command Line Invocations, Command Line Options, Command Line Options
 @section Option Descriptions
 
@@ -357,7 +369,7 @@ specified as `-' to use stdin as the input.
 Specifies which program area of the MCU to read or write; allowable
 values depend on the MCU being programmed, but most support at least
 @code{eeprom} for the EEPROM, and @code{flash} for the flash ROM.  Use
-the @code{-v} option on the command line or the @code{part} command from
+the @option{-v} option on the command line or the @code{part} command from
 terminal mode to display all the memory types supported by a particular
 device.  The default is @code{flash}.
 
@@ -391,7 +403,7 @@ Disable automatic verify check when uploading data.
 @item -y
 Tells AVRDUDE to use the last four bytes of the connected parts' EEPROM
 memory to track the number of times the device has been erased.  When
-this option is used and the @code{-e} flag is specified to generate a
+this option is used and the @option{-e} flag is specified to generate a
 chip erase, the previous counter will be saved before the chip erase, it
 is then incremented, and written back after the erase cycle com- pletes.
 Presumably, the device would only be erased just before being
@@ -411,6 +423,9 @@ should not be used.
 
 @end table
 
+@c
+@c Node
+@c
 @node Example Command Line Invocations,  , Option Descriptions, Command Line Options
 @section Example Command Line Invocations
 
@@ -467,11 +482,14 @@ avrdude done.  Thank you.
 @end example
 
 
+@c
+@c Node
+@c
 @node Terminal Mode Operation, Configuration File, Command Line Options, Top
 @chapter Terminal Mode Operation
 
 AVRDUDE has an interactive mode called @var{terminal mode} that is
-enabled by the @code{-t} option.  This mode allows one to enter
+enabled by the @option{-t} option.  This mode allows one to enter
 interactive commands to display and modify the various device memories,
 perform a chip erase, display the device signature bytes and part
 parameters, and to send raw programming commands.  Commands and
@@ -530,6 +548,9 @@ Leave terminal mode and thus AVRDUDE.
 
 @end table
 
+@c
+@c Node
+@c
 @node Terminal Mode Examples,  , Terminal Mode Commands, Terminal Mode Operation
 @section Terminal Mode Examples
 
@@ -629,6 +650,9 @@ avrdude>
 @end example
 
 
+@c
+@c Node
+@c
 @node Configuration File, Platform Dependent Information, Terminal Mode Operation, Top
 @chapter Configuration File
 
@@ -646,7 +670,7 @@ AVRDUDE first looks for a system wide configuration file in a platform
 dependent location.  On Unix, this is usually
 @code{/usr/local/etc/avrdude.conf}, while on Windows it is usally in the
 same location as the executable file.  The name of this file can be
-changed using the @code{-C} command line option.  After the system wide
+changed using the @option{-C} command line option.  After the system wide
 configuration file is parsed, AVRDUDE looks for a per-user configuration
 file to augment or override the system wide defaults.  On Unix, the
 per-user file is @code{.avrduderc} within the user's home directory.  On
@@ -660,6 +684,9 @@ directory as the executable.
 * Other Notes::                 
 @end menu
 
+@c
+@c Node
+@c
 @node AVRDUDE Defaults, Programmer Definitions, Configuration File, Configuration File
 @section AVRDUDE Defaults
 
@@ -667,19 +694,22 @@ directory as the executable.
 
 @item default_parallel = "@var{default-parallel-device}";
 Assign the default parallel port device.  Can be overidden using the
-@code{-P} option.
+@option{-P} option.
 
 @item default_serial = "@var{default-serial-device}";
 Assign the default serial port device.  Can be overidden using the
-@code{-P} option.
+@option{-P} option.
 
 @item default_programmer = "@var{default-programmer-id}";
-Assign the default programmer id.  Can be overidden using the @code{-c}
+Assign the default programmer id.  Can be overidden using the @option{-c}
 option.
 
 @end table
 
 
+@c
+@c Node
+@c
 @node Programmer Definitions, Part Definitions, AVRDUDE Defaults, Configuration File
 @section Programmer Definitions
 
@@ -704,6 +734,9 @@ programmer
 @end example
 
 
+@c
+@c Node
+@c
 @node Part Definitions, Other Notes, Programmer Definitions, Configuration File
 @section Part Definitions
 
@@ -746,6 +779,9 @@ part
 * Instruction Format::          
 @end menu
 
+@c
+@c Node
+@c
 @node Instruction Format,  , Part Definitions, Part Definitions
 @subsection Instruction Format
 
@@ -798,6 +834,9 @@ write = "1  1  0  0   0  0  0  0   x x x x  x x x x",
 
 
 
+@c
+@c Node
+@c
 @node Other Notes,  , Part Definitions, Configuration File
 @section Other Notes
 
@@ -837,27 +876,72 @@ problem with the at90s4433/2333's; see the at90s4433 errata at:
 @end itemize
 
 
+@c
+@c Node
+@c
 @node Platform Dependent Information,  , Configuration File, Top
 @appendix Platform Dependent Information
 
 @menu
-* FreeBSD::                     
-* Linux::                       
+* Unix::                        
 * Windows::                     
 @end menu
 
-@node FreeBSD, Linux, Platform Dependent Information, Platform Dependent Information
-@section FreeBSD
+@c
+@c Node
+@c
+@node Unix, Windows, Platform Dependent Information, Platform Dependent Information
+@section Unix
+
+@menu
+* Unix Installation::           
+* Unix Configuration Files::    
+* Unix Port Names::             
+* Unix Documentation::          
+@end menu
+
+@c
+@c Node
+@c
+@node Unix Installation, Unix Configuration Files, Unix, Unix
+@subsection Unix Installation
+
+@noindent
+To build and install from the source tarball on Unix like systems:
+
+@example
+$ gunzip -c avrdude-@value{VERSION}.tar.gz | tar xf -
+$ cd avrdude-@value{VERSION}
+$ ./configure
+$ make
+$ su root -c 'make install'
+@end example
+
+The default location of the install is into @code{/usr/local} so you
+will need to be sure that @code{/usr/local/bin} is in your @code{PATH}
+environment variable.
+
+If you do not have root access to your system, you can do the the
+following instead:
+
+@example
+$ gunzip -c avrdude-@value{VERSION}.tar.gz | tar xf -
+$ cd avrdude-@value{VERSION}
+$ ./configure --prefix=$HOME/local
+$ make
+$ make install
+@end example
 
 @menu
 * FreeBSD Installation::        
-* FreeBsd Configuration Files::  
-* FreeBSD Port Names::          
-* FreeBSD Documentation::       
+* Linux Installation::          
 @end menu
 
-@node FreeBSD Installation, FreeBsd Configuration Files, FreeBSD, FreeBSD
-@subsection Installation
+@c
+@c Node
+@c
+@node FreeBSD Installation, Linux Installation, Unix Installation, Unix Installation
+@subsubsection FreeBSD Installation
 
 @noindent
 AVRDUDE is installed via the FreeBSD Ports Tree as follows:
@@ -880,72 +964,114 @@ Of course, you must be connected to the Internet for these methods to
 work, since that is where the source as well as the pre-built package is
 obtained.
 
-
-@node FreeBsd Configuration Files, FreeBSD Port Names, FreeBSD Installation, FreeBSD
-@subsection Configuration Files
+@c
+@c Node
+@c
+@node Linux Installation,  , FreeBSD Installation, Unix Installation
+@subsubsection Linux Installation
 
 @noindent
-The default configuration file for FreeBSD is located at
-@code{/usr/local/etc/avrdude.conf}.  This can be changed by using the
-@code{-C} command line option.  Additionally, the user's home directory
-is search for a file named @code{.avrduderc}, and if found, is used to
+On rpm based linux systems (such as RedHat, SUSE, Mandrake, etc), you
+can build and install the rpm binaries directly from the tarball:
+
+@example
+$ su - root
+# rpmbuild -tb avrdude-@value{VERSION}.tar.gz
+# rpm -Uvh /usr/src/redhat/RPMS/i386/avrdude-@value{VERSION}-1.i386.rpm
+@end example
+
+Note that the path to the resulting rpm package, differs from system
+to system. The above example is specific to RedHat.
+
+@c
+@c Node
+@c
+@node Unix Configuration Files, Unix Port Names, Unix Installation, Unix
+@subsection Unix Configuration Files
+
+@noindent
+When AVRDUDE is build using the default @option{--prefix} configure
+option, the default configuration file for a Unix system is located at
+@code{/usr/local/etc/avrdude.conf}.  This can be overridden by using the
+@option{-C} command line option.  Additionally, the user's home directory
+is searched for a file named @code{.avrduderc}, and if found, is used to
 augment the system default configuration file.
 
-@node FreeBSD Port Names, FreeBSD Documentation, FreeBsd Configuration Files, FreeBSD
-@subsection Port Names
-
-@noindent
-AVRDUDE uses the FreeBSD ppi(4) interface for accessing the parallel
-port and the sio(4) driver for serial port access.  The default name
-used for the parallel port is @code{/dev/ppi0}, while the default serial
-port device is @code{/dev/cuaa0}.
-
-@node FreeBSD Documentation,  , FreeBSD Port Names, FreeBSD
-@subsection Documentation
-
-@noindent
-AVRDUDE installs a manual page as well as HTML and PDF documentation.
-The manual page is installed in @code{/usr/local/man/man1} area, while
-the HTML and PDF documentation is installed in
-@code{/usr/local/share/doc/avrdude} directory.
-
-
-@node Linux, Windows, FreeBSD, Platform Dependent Information
-@section Linux
-
 @menu
-* Linux Installation::          
+* FreeBSD Configuration Files::  
 * Linux Configuration Files::   
-* Linux Port Names::            
-* Linux Documentation::         
 @end menu
 
-@node Linux Installation, Linux Configuration Files, Linux, Linux
-@subsection Installation
+@c
+@c Node
+@c
+@node FreeBSD Configuration Files, Linux Configuration Files, Unix Configuration Files, Unix Configuration Files
+@subsubsection FreeBSD Configuration Files
 
 @noindent
-Empty.
+When AVRUDE is installed using the FreeBSD ports system, the system
+configuration file is always @code{/usr/local/etc/avrdude.conf}.
 
-@node Linux Configuration Files, Linux Port Names, Linux Installation, Linux
-@subsection Configuration Files
+@c
+@c Node
+@c
+@node Linux Configuration Files,  , FreeBSD Configuration Files, Unix Configuration Files
+@subsubsection Linux Configuration Files
 
 @noindent
-Empty.
+When AVRDUDE is installed using from an rpm package, the system
+configuration file will be always be @code{/etc/avrdude.conf}.
 
-@node Linux Port Names, Linux Documentation, Linux Configuration Files, Linux
-@subsection Port Names
+@c
+@c Node
+@c
+@node Unix Port Names, Unix Documentation, Unix Configuration Files, Unix
+@subsection Unix Port Names
 
 @noindent
-Empty.
+The parallel and serial port device file names are system specific.
+The following table lists the default names for a given system.
 
-@node Linux Documentation,  , Linux Port Names, Linux
-@subsection Documentation
+@multitable @columnfractions .30 .30 .30
+@item @strong{System}
+  @tab @strong{Default Parallel Port}
+  @tab @strong{Default Serial Port}
+@item FreeBSD
+  @tab @code{/dev/ppi0}
+  @tab @code{/dev/cuaa0}
+@item Linux
+  @tab @code{/dev/parport0}
+  @tab @code{/dev/ttyS0}
+@end multitable
+
+On FreeBSD systems, AVRDUDE uses the ppi(4) interface for
+accessing the parallel port and the sio(4) driver for serial port
+access.
+
+On Linux systems, AVRDUDE uses the ppdev interface for
+accessing the parallel port and the tty driver for serial port
+access.
+
+@c
+@c Node
+@c
+@node Unix Documentation,  , Unix Port Names, Unix
+@subsection Unix Documentation
 
 @noindent
-Empty.
+AVRDUDE installs a manual page as well as info, HTML and PDF
+documentation.  The manual page is installed in
+@code{/usr/local/man/man1} area, while the HTML and PDF documentation
+is installed in @code{/usr/local/share/doc/avrdude} directory.  The
+info manual is installed in @code{/usr/local/info/avrdude.info}.
 
+Note that these locations can be altered by various configure options
+such as @option{--prefix}.
 
-@node Windows,  , Linux, Platform Dependent Information
+@c
+@c Node
+@c
+@node Windows,  , Unix, Platform Dependent Information
 @section Windows
 
 @menu
@@ -957,12 +1083,18 @@ Empty.
 * Credits.::                    
 @end menu
 
+@c
+@c Node
+@c
 @node Windows Installation, Windows Configuration Files, Windows, Windows
 @subsection Installation
 
 @noindent
 Empty.
 
+@c
+@c Node
+@c
 @node Windows Configuration Files, Windows Port Names, Windows Installation, Windows
 @subsection Configuration Files
 
@@ -971,6 +1103,9 @@ Empty.
 * How AVRDUDE finds the configuration files.::  
 @end menu
 
+@c
+@c Node
+@c
 @node Configuration file names, How AVRDUDE finds the configuration files., Windows Configuration Files, Windows Configuration Files
 @subsubsection Configuration file names
 
@@ -979,6 +1114,9 @@ AVRDUDE on Windows looks for a system configuration file name of
 @code{avrdude.conf} and looks for a user override configuration file of
 @code{avrdude.rc}.
 
+@c
+@c Node
+@c
 @node How AVRDUDE finds the configuration files.,  , Configuration file names, Windows Configuration Files
 @subsubsection How AVRDUDE finds the configuration files.
  
@@ -1012,6 +1150,9 @@ The directories that are listed in the PATH environment variable.
 @end enumerate
 
 
+@c
+@c Node
+@c
 @node Windows Port Names, Using the parallel port, Windows Configuration Files, Windows
 @subsection Port Names
 
@@ -1020,6 +1161,9 @@ The directories that are listed in the PATH environment variable.
 * Parallel Ports::              
 @end menu
 
+@c
+@c Node
+@c
 @node Serial Ports, Parallel Ports, Windows Port Names, Windows Port Names
 @subsubsection Serial Ports
  
@@ -1027,6 +1171,9 @@ The directories that are listed in the PATH environment variable.
 When you select a serial port (i.e. when using an STK500) use the
 Windows serial port device names such as: com1, com2, etc.
  
+@c
+@c Node
+@c
 @node Parallel Ports,  , Serial Ports, Windows Port Names
 @subsubsection Parallel Ports
 
@@ -1051,9 +1198,11 @@ On your desktop PC, lpt1 will be the most common choice. If you are
 using a laptop, you might have to use lpt3 instead of lpt1. Select the
 name of the port the corresponds to the base address of the parallel
 port that you want.
- 
 
- 
+
+@c
+@c Node
+@c 
 @node Using the parallel port, Documentation, Windows Port Names, Windows
 @subsection Using the parallel port
 
@@ -1062,6 +1211,9 @@ port that you want.
 * Windows 95/98::               
 @end menu
 
+@c
+@c Node
+@c
 @node Windows NT/2K/XP, Windows 95/98, Using the parallel port, Using the parallel port
 @subsubsection Windows NT/2K/XP
 
@@ -1099,6 +1251,9 @@ means that after the first time install_giveio is executed, you should
 be able to subsequently execute the batch file from any directory and have
 it successfully start the driver.
 
+@c
+@c Node
+@c
 @node Windows 95/98,  , Windows NT/2K/XP, Using the parallel port
 @subsubsection Windows 95/98
 
@@ -1106,12 +1261,18 @@ it successfully start the driver.
 On Windows 95 and 98 the giveio.sys driver is not needed.
 
 
+@c
+@c Node
+@c
 @node Documentation, Credits., Using the parallel port, Windows
 @subsection Documentation
 
 @noindent
 Empty.
 
+@c
+@c Node
+@c
 @node Credits.,  , Documentation, Windows
 @subsection Credits.