added new example
diff --git a/pyserial/examples/miniterm.py b/pyserial/examples/miniterm.py
index 829a454..43b4fa8 100644
--- a/pyserial/examples/miniterm.py
+++ b/pyserial/examples/miniterm.py
@@ -1,8 +1,10 @@
 #!/usr/bin/env python
 
 #very simple serial terminal
+#(C)2002 Chris Liechti >cliecht@gmx.net>
+
 #input characters are sent directly, received characters are displays as is
-#baudrate and echo configuartion is done through globals:
+#baudrate and echo configuartion is done through globals
 
 
 import sys, os, serial, threading, getopt
@@ -10,7 +12,7 @@
 EXITCHARCTER = '\x04'   #ctrl+d
 
 #first choosea platform dependant way to read single characters from the console
-if os.name == 'nt': #sys.platform == 'win32':
+if os.name == 'nt':
     import msvcrt
     def getkey():
         while 1:
@@ -52,7 +54,7 @@
         sys.stdout.write(s.read())
 
 def writer():
-    """loop forever and copy console->serial"""
+    """loop and copy console->serial until EOF character is found"""
     while 1:
         c = getkey()
         if c == EXITCHARCTER: break   #exit on esc
diff --git a/pyserial/examples/tcp_serial_redirect.py b/pyserial/examples/tcp_serial_redirect.py
new file mode 100644
index 0000000..0816ad8
--- /dev/null
+++ b/pyserial/examples/tcp_serial_redirect.py
@@ -0,0 +1,119 @@
+#!/usr/bin/env python
+
+#(C)2002 Chris Liechti >cliecht@gmx.net>
+#redirect data from a TCP/IP connection to a serial port and vice versa
+#requires python 2.2 'cause socket.sendall is used
+
+#this program is a hack - do not use it as an example of clean
+#threading programming! it's only an example for pyserial.
+
+import sys, os, serial, threading, getopt, socket, time
+
+def reader():
+    """loop forever and copy serial->console"""
+    global connection
+    while 1:
+        try:
+            if connection:
+                connection.sendall(s.read(s.inWaiting()))
+            else:
+                time.sleep(0.2) #lower CPU usage...
+        except socket.error, msg:
+            print msg
+            if connection: connection.close()
+            connection = None
+        except:
+            pass
+
+def writer():
+    """loop forever and copy console->serial"""
+    global connection
+    try:
+        while 1:
+            s.write(connection.recv(1024))
+    except socket.error, msg:
+        print msg
+
+
+#print a short help message
+def usage():
+    print >>sys.stderr, """USAGE: %s [options]
+    Simple Terminal Programm for the serial port.
+
+    options:
+    -p, --port=PORT: serial port, a number, defualt = 0 or a device name
+    -b, --baud=BAUD: baudrate, default 9600
+    -r, --rtscts:    enable RTS/CTS flow control (default off)
+    -x, --xonxoff:   enable software flow control (default off)
+    -P, --localport: TCP/IP port on which to run the server (default 7777)
+    """ % sys.argv[0]
+
+if __name__ == '__main__':
+    connection = None
+    
+    #parse command line options
+    try:
+        opts, args = getopt.getopt(sys.argv[1:],
+                "hp:b:rxec",
+                ["help", "port=", "baud=", "rtscts", "xonxoff", "echo", "cr"])
+    except getopt.GetoptError:
+        # print help information and exit:
+        usage()
+        sys.exit(2)
+    
+    port  = 0
+    baudrate = 9600
+    rtscts = 0
+    xonxoff = 0
+    localport = 7777
+    for o, a in opts:
+        if o in ("-h", "--help"):   #help text
+            usage()
+            sys.exit()
+        elif o in ("-p", "--port"):   #specified port
+            try:
+                port = int(a)
+            except ValueError:
+                port = a
+        elif o in ("-b", "--baud"):   #specified baudrate
+            try:
+                baudrate = int(a)
+            except ValueError:
+                raise ValueError, "Baudrate must be a integer number"
+        elif o in ("-r", "--rtscts"):
+            rtscts = 1
+        elif o in ("-x", "--xonxoff"):
+            xonxoff = 1
+        elif o in ("-P", "--localport"):
+            try:
+                localport = int(a)
+            except ValueError:
+                raise ValueError, "local port must be an integer number"
+
+    print "--- TCP/IP to Serial redirector --- type Ctrl-C / BREAK to quit"
+    #start serial->tcp/ip thread
+    r = threading.Thread(target=reader)
+    r.setDaemon(1)
+    r.start()
+
+    try:
+        s = serial.Serial(port, baudrate, rtscts=rtscts, xonxoff=xonxoff)
+    except:
+        print "could not open port"
+        sys.exit(1)
+
+    srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    srv.bind( ('', localport) )
+    srv.listen(1)
+    while 1:
+        try:
+            connection, addr = srv.accept()
+            print 'Connected by', addr
+            #enter console->serial loop
+            writer()
+        except socket.error, msg:
+            print msg
+        if connection: connection.close()
+        connection = None
+
+    print "\n--- exit ---"