Revamped test case and updated doc string.
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index e60b73b..3d7d2fc 100755
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -1,8 +1,8 @@
-#
-# A class to hand a unix-style or mmdf-style mailboxes
-#
-# Jack Jansen, CWI, March 1994.
-#
+#!/usr/local/bin/python
+
+"""Classes to handle Unix style, MMDF style, and MH style mailboxes."""
+
+
 import rfc822
 import os
 import regex
@@ -134,17 +134,32 @@
 	return rfc822.Message(fp)
 	    
     
-if __name__ == '__main__':
-	import posix
+def _test():
 	import time
 	import sys
 	import string
-##	mbox = '/usr/mail/'+posix.environ['USER']
-##	fp = open(mbox, 'r')
-##	mb = UnixMailbox(fp)
+	import os
 
-	mbox = posix.environ['HOME']+'/Mail/inbox'
-	mb = MHMailbox(mbox)
+	args = sys.argv[1:]
+	if not args:
+		if os.environ.has_key('MAIL'):
+			mbox = os.environ['MAIL']
+		elif os.environ.has_key('MAIL'):
+			mbox = os.environ['USER']
+		else:
+			print "Who are you?"
+			return
+	else:
+		mbox = args[0]
+	if mbox[:1] == '+':
+		mbox = os.environ['HOME'] + '/Mail/' + mbox[1:]
+	elif not '/' in mbox:
+		mbox = '/usr/mail/' + mbox
+	if os.path.isdir(mbox):
+		mb = MHMailbox(mbox)
+	else:
+		fp = open(mbox, 'r')
+		mb = UnixMailbox(fp)
 	
 	msgs = []
 	while 1:
@@ -152,17 +167,20 @@
 		if not msg:
 			break
 		msgs.append(msg)
-	if len(sys.argv) > 1:
-		num = string.atoi(sys.argv[1])
+	if len(args) > 1:
+		num = string.atoi(args[1])
 		print 'Message %d body:'%num
 		msg = msgs[num-1]
 		msg.rewindbody()
 		sys.stdout.write(msg.fp.read())
-		sys.exit(0)
-	print 'Mailbox',mbox,'has',len(msgs),'messages:'
-	for msg in msgs:
-		f = msg.getheader('from')
-		s = msg.getheader('subject')
-		d = (msg.getheader('date'))
-		print '%20.20s   %18.18s   %-30.30s'%(f, d[5:], s)
-		
+	else:
+		print 'Mailbox',mbox,'has',len(msgs),'messages:'
+		for msg in msgs:
+			f = msg.getheader('from')
+			s = msg.getheader('subject')
+			d = (msg.getheader('date'))
+			print '%20.20s   %18.18s   %-30.30s'%(f, d[5:], s)
+
+
+if __name__ == '__main__':
+	_test()