diff --git a/Lib/base64.py b/Lib/base64.py
index 55f01ce..90b5273 100755
--- a/Lib/base64.py
+++ b/Lib/base64.py
@@ -106,18 +106,19 @@
 	decode(f, g)
 	return g.getvalue()
 
-# Small test program, reads stdin, writes stdout.
-# no arg: encode, any arg: decode.
+# Small test program
 def test():
 	import sys, getopt
 	try:
 		opts, args = getopt.getopt(sys.argv[1:], 'deut')
 	except getopt.error, msg:
+		sys.stdout = sys.stderr
 		print msg
 		print """usage: basd64 [-d] [-e] [-u] [-t] [file|-]
 		-d, -u: decode
 		-e: encode (default)
 		-t: decode string 'Aladdin:open sesame'"""
+		sys.exit(2)
 	func = encode
 	for o, a in opts:
 		if o == '-e': func = encode
diff --git a/Lib/quopri.py b/Lib/quopri.py
index 4c39228..55608d1 100755
--- a/Lib/quopri.py
+++ b/Lib/quopri.py
@@ -89,13 +89,45 @@
 
 def test():
 	import sys
-	if sys.argv[1:]:
-		if sys.argv[1] == '-t': # Quote tabs
-			encode(sys.stdin, sys.stdout, 1)
-		else:
-			decode(sys.stdin, sys.stdout)
-	else:
-		encode(sys.stdin, sys.stdout, 0)
+	import getopt
+	try:
+	    opts, args = getopt.getopt(sys.argv[1:], 'td')
+	except getopt.error, msg:
+	    sys.stdout = sys.stderr
+	    print msg
+	    print "usage: quopri [-t | -d] [file] ..."
+	    print "-t: quote tabs"
+	    print "-d: decode; default encode"
+	    sys.exit(2)
+	deco = 0
+	tabs = 0
+	for o, a in opts:
+	    if o == '-t': tabs = 1
+	    if o == '-d': deco = 1
+	if tabs and deco:
+	    sys.stdout = sys.stderr
+	    print "-t and -d are mutually exclusive"
+	    sys.exit(2)
+	if not args: args = ['-']
+	sts = 0
+	for file in args:
+	    if file == '-':
+		fp = sys.stdin
+	    else:
+		try:
+		    fp = open(file)
+		except IOError, msg:
+		    sys.stderr.write("%s: can't open (%s)\n" % (file, msg))
+		    sts = 1
+		    continue
+	    if deco:
+		decode(fp, sys.stdout)
+	    else:
+		encode(fp, sys.stdout, tabs)
+	    if fp is not sys.stdin:
+		fp.close()
+	if sts:
+	    sys.exit(sts)
 
 if __name__ == '__main__':
-	main()
+	test()
