- more documentation updates
- added logo
diff --git a/documentation/appendix.rst b/documentation/appendix.rst
index a8c83e3..3a4a766 100644
--- a/documentation/appendix.rst
+++ b/documentation/appendix.rst
@@ -5,19 +5,17 @@
 License
 =======
 
-Copyright (c) 2001-2008 Chris Liechti <cliechti@gmx.net>;
+Copyright (C) 2001-2009 Chris Liechti <cliechti(at)gmx.net>;
 All Rights Reserved.
 
-This is the Python license. In short, you can use this product in
-commercial and non-commercial applications, modify it, redistribute it.
-A notification to the author when you use and/or modify it is welcome.
+This is the Python license. In short, you can use this product in commercial
+and non-commercial applications, modify it, redistribute it.  A notification to
+the author when you use and/or modify it is welcome.
 
 
-TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING THIS SOFTWARE
--------------------------------------------------------------------
+**TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING THIS SOFTWARE**
 
-LICENSE AGREEMENT
-~~~~~~~~~~~~~~~~~
+*LICENSE AGREEMENT*
 
 1. This LICENSE AGREEMENT is between the copyright holder of this
    product, and the Individual or Organization ("Licensee") accessing and
diff --git a/documentation/conf.py b/documentation/conf.py
index 4ff412c..8f5943a 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -110,7 +110,7 @@
 
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
-#html_logo = None
+html_logo = 'pyserial.png'
 
 # The name of an image file (within the static path) to use as favicon of the
 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
@@ -178,7 +178,7 @@
 
 # The name of an image file (relative to this directory) to place at the top of
 # the title page.
-#latex_logo = None
+latex_logo = 'pyserial.png'
 
 # For "manual" documents, if this is true, then toplevel headings are parts,
 # not chapters.
diff --git a/documentation/examples.rst b/documentation/examples.rst
index a50b655..33450ea 100644
--- a/documentation/examples.rst
+++ b/documentation/examples.rst
@@ -11,11 +11,73 @@
 sequences of the xterm. On Windows the typical console window is dumb and does
 not support any escapes. When ANSI.sys is loaded it supports some escapes.
 
+miniterm::
+
+    --- Miniterm on /dev/ttyS0: 9600,8,N,1 ---
+    --- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
+
 Command line options can be given so that binary data including escapes for
 terminals are escaped or output as hex.
 
-miniterm supports some control functions. Typing ``CTRL+T CTRL+H`` when it is
-running shows the help text.
+Command line options ``miniterm.py -h``::
+
+    Usage: miniterm.py [options] [port [baudrate]]
+
+    Miniterm - A simple terminal program for the serial port.
+
+    Options:
+      -h, --help            show this help message and exit
+      -p PORT, --port=PORT  port, a number (default 0) or a device name
+                            (deprecated option)
+      -b BAUDRATE, --baud=BAUDRATE
+                            set baud rate, default 9600
+      --parity=PARITY       set parity, one of [N, E, O, S, M], default=N
+      -e, --echo            enable local echo (default off)
+      --rtscts              enable RTS/CTS flow control (default off)
+      --xonxoff             enable software flow control (default off)
+      --cr                  do not send CR+LF, send CR only
+      --lf                  do not send CR+LF, send LF only
+      -D, --debug           debug received data (escape non-printable chars)
+                            --debug can be given multiple times: 0: just print
+                            what is received 1: escape non-printable characters,
+                            do newlines as unusual 2: escape non-printable
+                            characters, newlines too 3: hex dump everything
+      --rts=RTS_STATE       set initial RTS line state (possible values: 0, 1)
+      --dtr=DTR_STATE       set initial DTR line state (possible values: 0, 1)
+      -q, --quiet           suppress non error messages
+      --exit-char=EXIT_CHAR
+                            ASCII code of special character that is used to exit
+                            the application
+      --menu-char=MENU_CHAR
+                            ASCII code of special character that is used to
+                            control miniterm (menu)
+
+
+miniterm supports some control functions. Typing :kbd:`Control+t Control+h` when it is
+running shows the help text::
+
+    --- pySerial - miniterm - help
+    ---
+    --- Ctrl+]   Exit program
+    --- Ctrl+T   Menu escape key, followed by:
+    --- Menu keys:
+    ---       Ctrl+T   Send the menu character itself to remote
+    ---       Ctrl+]   Send the exit character to remote
+    ---       Ctrl+I   Show info
+    ---       Ctrl+U   Upload file (prompt will be shown)
+    --- Toggles:
+    ---       Ctrl+R  RTS          Ctrl+E  local echo
+    ---       Ctrl+D  DTR          Ctrl+B  BREAK
+    ---       Ctrl+L  line feed    Ctrl+A  Cycle repr mode
+    ---
+    --- Port settings (Ctrl+T followed by the following):
+    --- 7 8           set data bits
+    --- n e o s m     change parity (None, Even, Odd, Space, Mark)
+    --- 1 2 3         set stop bits (1, 2, 1.5)
+    --- b             change baud rate
+    --- x X           disable/enable software flow control
+    --- r R           disable/enable hardware flow control
+
 
 miniterm.py_
     The miniterm program.
@@ -35,6 +97,53 @@
 
 The serial port settings are set on the command line when starting the program.
 There is no possibility to change settings from remote.
+::
+
+    Usage: tcp_serial_redirect.py [options] [port [baudrate]]
+
+    Simple Serial to Network (TCP/IP) redirector.
+
+    Options:
+      -h, --help            show this help message and exit
+      -q, --quiet           suppress non error messages
+      --spy                 peek at the communication and print all data to the
+                            console
+
+      Serial Port:
+        Serial port settings
+
+        -p PORT, --port=PORT
+                            port, a number (default 0) or a device name
+        -b BAUDRATE, --baud=BAUDRATE
+                            set baud rate, default: 9600
+        --parity=PARITY     set parity, one of [N, E, O], default=N
+        --rtscts            enable RTS/CTS flow control (default off)
+        --xonxoff           enable software flow control (default off)
+        --rts=RTS_STATE     set initial RTS line state (possible values: 0, 1)
+        --dtr=DTR_STATE     set initial DTR line state (possible values: 0, 1)
+
+      Network settings:
+        Network configuration.
+
+        -P LOCAL_PORT, --localport=LOCAL_PORT
+                            local TCP port
+
+      Newline Settings:
+        Convert newlines between network and serial port. Conversion is
+        normally disabled and can be enabled by --convert.
+
+        -c, --convert       enable newline conversion (default off)
+        --net-nl=NET_NEWLINE
+                            type of newlines that are expected on the network
+                            (default: LF)
+        --ser-nl=SER_NEWLINE
+                            type of newlines that are expected on the serial port
+                            (default: CR+LF)
+
+    NOTE: no security measures are implemented. Anyone can remotely connect to
+    this service over the network.  Only one connection at once is supported. When
+    the connection is terminated it waits for the next connect.
+
 
 tcp_serial_redirect.py_
     Main program.
diff --git a/documentation/index.rst b/documentation/index.rst
index 8019123..96a78b5 100644
--- a/documentation/index.rst
+++ b/documentation/index.rst
@@ -1,10 +1,12 @@
-.. pySerial documentation master file, created by
-   sphinx-quickstart on Tue Jul 21 00:27:45 2009.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
+.. pySerial documentation master file
 
-Welcome to pySerial's documentation!
-====================================
+Welcome to pySerial's documentation
+===================================
+
+This module encapsulates the access for the serial port. It provides backends
+for Python running on Windows, Linux, BSD (possibly any POSIX compliant
+system), Jython and IronPython (.NET and Mono). The module named "serial"
+automatically selects the appropriate backend.
 
 Contents:
 
diff --git a/documentation/pyparallel.rst b/documentation/pyparallel.rst
index 36611a9..b7bab7d 100644
--- a/documentation/pyparallel.rst
+++ b/documentation/pyparallel.rst
@@ -12,7 +12,7 @@
 
 This module is still under development. But it may be useful for developers.
 
-  (C) 2001-2003 Chris Liechti <cliechti@gmx.net>
+Copyright (C) 2001-2003 Chris Liechti <cliechti(at)gmx.net>
 
 Here is the `project page on SourceForge`_ and here is the `SVN repository`_.
 
@@ -26,11 +26,13 @@
 * port numbering starts at zero, no need to know the port name in the user program
 * port string (device name) can be specified if access through numbering is inappropriate
 
+
 Requirements
 ------------
 * Python 2.2 or newer
 * "Java Communications" (JavaComm) extension for Java/Jython
 
+
 Installation
 ------------
 Extract files from the archive, open a shell/console in that directory and let
@@ -39,7 +41,7 @@
 The files get installed in the "Lib/site-packages" directory in newer Python versions.
 
 The windows version needs a compiled extension and the giveio.sys driver for
-Windows NT/2k/XP. The extension module can be compiled with distutils with
+Windows NT/2k/XP. The extension module can be compiled with Distutils with
 either MSVC or GCC/mingw32.
 
 It is released under a free software license, see LICENSE.txt for more details.
@@ -53,12 +55,14 @@
     >>> p = parallel.Parallel()     # open LPT1
     >>> p.setData(0x55)
 
+
 Examples
 --------
 Please look in the SVN Repository. There is an example directory where you can
 find a simple terminal and more.
 http://pyserial.svn.sourceforge.net/viewvc/pyserial/trunk/pyparallel/examples/
 
+
 API
 ===
 
@@ -110,6 +114,7 @@
 
         Read level of "busy" line.
 
+
 .. module:: parallel.parallelutil
 
 .. class:: BitaccessMeta
@@ -128,7 +133,8 @@
 ====
 References
 ----------
-* Python: http://www.python.org/|http://www.python.org
-* Jython: http://www.jython.org/|http://www.jython.org
-* Java@IBM http://www-106.ibm.com/developerworks/java/jdk/ (JavaComm links are on the download page for the respective platform jdk)
-* Java@SUN http://java.sun.com/products/
+* Python: http://www.python.org/
+* Jython: http://www.jython.org/
+* Java@IBM: http://www-106.ibm.com/developerworks/java/jdk/ (JavaComm links are
+  on the download page for the respective platform JDK)
+* Java@SUN: http://java.sun.com/products/
diff --git a/documentation/pyserial.png b/documentation/pyserial.png
new file mode 100644
index 0000000..7fd45f4
--- /dev/null
+++ b/documentation/pyserial.png
Binary files differ
diff --git a/documentation/pyserial.rst b/documentation/pyserial.rst
index fcc3fd0..c7c7b3d 100644
--- a/documentation/pyserial.rst
+++ b/documentation/pyserial.rst
@@ -9,16 +9,17 @@
 system), Jython and IronPython (.NET and Mono). The module named "serial"
 automatically selects the appropriate backend.
 
-It is released under a free software license, see LICENSE.txt_ for more
+It is released under a free software license, see LICENSE_ for more
 details.
 
-  (C) 2001-2009 Chris Liechti <cliechti@gmx.net>
+Copyright (C) 2001-2009 Chris Liechti <cliechti(at)gmx.net>
 
-The `project page on SourceForge`_ and here is the `SVN repository`_ and the `Download Page`_.
+The `project page on SourceForge`_ and here is the `SVN repository`_ and the
+`Download Page`_.
 
 The homepage is at http://pyserial.sf.net.
 
-.. _LICENSE.txt: http://pyserial.svn.sourceforge.net/viewvc/*checkout*/pyserial/trunk/pyserial/LICENSE.txt
+.. _LICENSE: appendix.html#license
 .. _`project page on SourceForge`: http://sourceforge.net/projects/pyserial/
 .. _`SVN repository`: http://sourceforge.net/svn/?group_id=46487
 .. _`Download Page`: http://sourceforge.net/project/showfiles.php?group_id=46487
@@ -26,19 +27,19 @@
 
 Features
 ========
-* same class based interface on all supported platforms
-* access to the port settings through Python 2.2+ properties
-* port numbering starts at zero, no need to know the port name in the user
-  program
-* port string (device name) can be specified if access through numbering is
-  inappropriate
-* support for different bytesizes, stopbits, parity and flow control with
-  RTS/CTS and/or Xon/Xoff
-* working with or without receive timeout
-* file like API with "read" and "write" ("readline" etc. also supported)
+* Same class based interface on all supported platforms.
+* Access to the port settings through Python 2.2+ properties.
+* Port numbering starts at zero, no need to know the port name in the user
+  program.
+* Port string (device name) can be specified if access through numbering is
+  inappropriate.
+* Support for different bytesizes, stopbits, parity and flow control with
+  RTS/CTS and/or Xon/Xoff.
+* Working with or without receive timeout.
+* File like API with "read" and "write" ("readline" etc. also supported).
 * The files in this package are 100% pure Python. They depend on non standard
   but common packages on Windows (pywin32) and Jython (JavaComm). POSIX (Linux,
-  BSD) uses only modules from the standard Python distribution)
+  BSD) uses only modules from the standard Python distribution).
 * The port is set up for binary transmission. No NULL byte stripping, CR-LF
   translation etc. (which are many times enabled for POSIX.) This makes this
   module universally useful.
@@ -50,14 +51,15 @@
 * pywin32 extensions on Windows
 * "Java Communications" (JavaComm) or compatible extension for Java/Jython
 
+
 Installation
 ============
 
 pyserial
 --------
-This installs a package that can be used from python (``import serial``).
+This installs a package that can be used from Python (``import serial``).
 
-The Python pywin32 library needs to be installed on windows.
+The Python pywin32 library needs to be installed on Windows.
 
 To install the module for all users on the system, administrator rights (root)
 is required..
@@ -71,7 +73,7 @@
 
 Setuptools/PyPI
 ~~~~~~~~~~~~~~~
-Alternatively it can be installed from PyPy, either manually downloading the
+Alternatively it can be installed from PyPI, either manually downloading the
 files and installing as described above or using::
 
     easy_install -U pyserial
@@ -81,7 +83,7 @@
 There are also packaged versions for some Linux distributions and Windows:
 
 Debian/Ubuntu
-    A package is availabe under the name "python-serial"
+    A package is available under the name "python-serial".
 
 Windows
     There is also a Windows installer for end users. It is located in the
@@ -96,9 +98,9 @@
 * Python: http://www.python.org/
 * pywin32: http://sourceforge.net/projects/pywin32/ (previously known as win32all)
 * Jython: http://www.jython.org/
-* Java@IBM http://www-106.ibm.com/developerworks/java/jdk/ (JavaComm links are
-  on the download page for the respective platform jdk)
-* Java@SUN http://java.sun.com/products/
+* Java@IBM: http://www-106.ibm.com/developerworks/java/jdk/ (JavaComm links are
+  on the download page for the respective platform JDK)
+* Java@SUN: http://java.sun.com/products/
 * IronPython: http://www.codeplex.com/IronPython
 * setuptools: http://peak.telecommunity.com/DevCenter/setuptools
 
diff --git a/documentation/pyserial_api.rst b/documentation/pyserial_api.rst
index fa67b89..82024f1 100644
--- a/documentation/pyserial_api.rst
+++ b/documentation/pyserial_api.rst
@@ -12,13 +12,8 @@
     .. method:: __init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=0, rtscts=0, interCharTimeout=None)
 
         :param port:
-
             Device name or port number number or None.
 
-            Number: number of device, numbering starts at zero
-            Device name: depending on operating system. e.g. ``/dev/ttyUSB0``
-            on GNU/Linux or ``COM3`` on Windows.
-
         :param baudrate:
             Baud rate such as 9600 or 115200 etc.
 
@@ -43,14 +38,18 @@
         :param interCharTimeout:
             Inter-character timeout, None to disable.
 
-    The port is immediately opened on object creation, when a port is given. It
-    is not opened when port is None.
+        The port is immediately opened on object creation, when a ``port`` is
+        given. It is not opened when port is None.
 
-    Possible values for the parameter ``timeout``::
+        - Number: number of device, numbering starts at zero.
+        - Device name: depending on operating system. e.g. ``/dev/ttyUSB0``
+          on GNU/Linux or ``COM3`` on Windows.
 
-            timeout = None  # wait forever
-            timeout = 0     # non-blocking mode (return immediately on read)
-            timeout = x     # set timeout to x seconds (float allowed)
+        Possible values for the parameter ``timeout``::
+
+                timeout = None  # wait forever
+                timeout = 0     # non-blocking mode (return immediately on read)
+                timeout = x     # set timeout to x seconds (float allowed)
 
 
     .. method:: open()
@@ -79,7 +78,7 @@
 
         Write the string `s` to the port.
 
-    .. method:: flush(self):
+    .. method:: flush():
 
         Flush of file like objects. In this case, wait until all data is
         written.
@@ -130,8 +129,8 @@
 
     .. attribute:: portstr
 
-        Device name (Read Only). This is always the device name even if the
-        port was opened by a number.
+        Device name. This is always the device name even if the
+        port was opened by a number. (Read Only).
 
     .. attribute:: BAUDRATES
 
@@ -176,7 +175,7 @@
 
     .. attribute:: timeout
 
-        Timeout setting (seconds).
+        Timeout setting (seconds, float).
 
     .. attribute:: xonxoff
 
@@ -226,7 +225,7 @@
 Constants
 =========
 
-parity
+Parity
 ------
 .. data:: PARITY_NONE
 .. data:: PARITY_EVEN
@@ -234,13 +233,13 @@
 .. data:: PARITY_MARK
 .. data:: PARITY_SPACE
 
-stopbits
+Stopbits
 --------
 .. data:: STOPBITS_ONE
 .. data:: STOPBITS_ONE_POINT_FIVE
 .. data:: STOPBITS_TWO
 
-bytesize
+Bytesize
 --------
 .. data:: FIVEBITS
 .. data:: SIXBITS