Print serious errors to stderr instead of stdout.
diff --git a/Lib/tabnanny.py b/Lib/tabnanny.py
index a9bd9dc..0ffdba1 100755
--- a/Lib/tabnanny.py
+++ b/Lib/tabnanny.py
@@ -13,18 +13,25 @@
 
 verbose = 0
 
+def errprint(*args):
+    sep = ""
+    for arg in args:
+        sys.stderr.write(sep + str(arg))
+        sep = " "
+    sys.stderr.write("\n")
+
 def main():
     global verbose
     try:
         opts, args = getopt.getopt(sys.argv[1:], "v")
     except getopt.error, msg:
-        print msg
+        errprint(msg)
         return
     for o, a in opts:
         if o == '-v':
             verbose = verbose + 1
     if not args:
-        print "Usage:", sys.argv[0], "[-v] file_or_directory ..."
+        errprint("Usage:", sys.argv[0], "[-v] file_or_directory ...")
         return
     for arg in args:
         check(arg)
@@ -55,7 +62,7 @@
     try:
         f = open(file)
     except IOError, msg:
-        print "%s: I/O Error: %s" % (`file`, str(msg))
+        errprint("%s: I/O Error: %s" % (`file`, str(msg)))
         return
 
     if verbose > 1:
@@ -66,7 +73,7 @@
         tokenize.tokenize(f.readline, tokeneater)
 
     except tokenize.TokenError, msg:
-        print "%s: Token Error: %s" % (`file`, str(msg))
+        errprint("%s: Token Error: %s" % (`file`, str(msg)))
         return
 
     except NannyNag, nag: