- drop old python compatibility and use termios instead of TERMIOS
- flush often -> better behaviour on linux
- fixed error in CR->CR++LF translation
diff --git a/pyserial/examples/miniterm.py b/pyserial/examples/miniterm.py
index 446748e..3e2df1c 100644
--- a/pyserial/examples/miniterm.py
+++ b/pyserial/examples/miniterm.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 #very simple serial terminal
-#(C)2002 Chris Liechti >cliecht@gmx.net>
+#(C)2002-2004 Chris Liechti <cliecht@gmx.net>
 
 #input characters are sent directly, received characters are displays as is
 #baudrate and echo configuartion is done through globals
@@ -26,24 +26,24 @@
                 return z
 
 elif os.name == 'posix':
-    #XXX: Untested code drrived from the Python FAQ....
-    import termios, TERMIOS, sys, os
+    #XXX: Untested code derived from the Python FAQ....
+    import termios, sys, os
     fd = sys.stdin.fileno()
     old = termios.tcgetattr(fd)
     new = termios.tcgetattr(fd)
-    new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
-    new[6][TERMIOS.VMIN] = 1
-    new[6][TERMIOS.VTIME] = 0
-    termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
+    new[3] = new[3] & ~termios.ICANON & ~termios.ECHO
+    new[6][termios.VMIN] = 1
+    new[6][termios.VTIME] = 0
+    termios.tcsetattr(fd, termios.TCSANOW, new)
     s = ''    # We'll save the characters typed and add them to the pool.
     def getkey():
-        #~ c = os.read(fd, 1)
-        c = sys.stdin.read(1)
-        if echo: sys.stdout.write(c)
+        c = os.read(fd, 1)
+        #~ c = sys.stdin.read(1)
+        if echo: sys.stdout.write(c); sys.stdout.flush()
         return c
     def clenaup_console():
-        termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
-    sys.exitfunc = clenaup_console  #terminal modes have to be restored on exit...
+        termios.tcsetattr(fd, termios.TCSAFLUSH, old)
+    sys.exitfunc = clenaup_console      #terminal modes have to be restored on exit...
 
 else:
     raise "Sorry no implementation for your platform (%s) available." % sys.platform
@@ -53,39 +53,40 @@
     """loop forever and copy serial->console"""
     while 1:
         sys.stdout.write(s.read())
+        sys.stdout.flush()
 
 def writer():
     """loop and copy console->serial until EOF character is found"""
     while 1:
         c = getkey()
-        if c == EXITCHARCTER: break   #exit on esc
-        s.write(c)              #send character
-        if convert_outgoing_cr and c == '\r':
-            s.write('\n')
-            if echo: sys.stdout.write('\n')
+        if c == EXITCHARCTER: break     #exit on esc
+        if convert_outgoing_cr and c == '\n':
+            s.write('\r')               #make it a CR+LF (LF below)
+        s.write(c)                      #send character
 
 
 #print a short help message
 def usage():
-    print >>sys.stderr, """USAGE: %s [options]
+    sys.stderr.write("""USAGE: %s [options]
     Simple Terminal Programm for the serial port.
 
     options:
-    -p, --port=PORT: port, a number, defualt = 0 or a device name
+    -p, --port=PORT: port, a number, default = 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)
     -e, --echo:      enable local echo (default off)
-    -c, --cr:        disable CR -> CR+LF translation
+    -c, --cr:        disable LF -> CR+LF translation
 
-    """ % sys.argv[0]
+""" % (sys.argv[0], ))
 
 if __name__ == '__main__':
     #parse command line options
     try:
         opts, args = getopt.getopt(sys.argv[1:],
-                "hp:b:rxec",
-                ["help", "port=", "baud=", "rtscts", "xonxoff", "echo", "cr"])
+            "hp:b:rxec",
+            ["help", "port=", "baud=", "rtscts", "xonxoff", "echo", "cr"]
+        )
     except getopt.GetoptError:
         # print help information and exit:
         usage()
@@ -98,19 +99,19 @@
     rtscts = 0
     xonxoff = 0
     for o, a in opts:
-        if o in ("-h", "--help"):   #help text
+        if o in ("-h", "--help"):       #help text
             usage()
             sys.exit()
-        elif o in ("-p", "--port"):   #specified port
+        elif o in ("-p", "--port"):     #specified port
             try:
                 port = int(a)
             except ValueError:
                 port = a
-        elif o in ("-b", "--baud"):   #specified baudrate
+        elif o in ("-b", "--baud"):     #specified baudrate
             try:
                 baudrate = int(a)
             except ValueError:
-                raise ValueError, "Baudrate must be a integer number"
+                raise ValueError, "Baudrate must be a integer number, not %r" % a
         elif o in ("-r", "--rtscts"):
             rtscts = 1
         elif o in ("-x", "--xonxoff"):