A test of the select module that is actually reproduceable!
diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py
index f185308..5834575 100644
--- a/Lib/test/test_select.py
+++ b/Lib/test/test_select.py
@@ -1,14 +1,44 @@
 # Testing select module
+import select
+import os
+
+# test some known error conditions
+try:
+    rfd, wfd, xfd = select.select(1, 2, 3)
+except TypeError:
+    pass
+else:
+    print 'expected TypeError exception not raised'
+
+class Nope:
+    pass
+
+class Almost:
+    def fileno(self):
+	return 'fileno'
+    
+try:
+    rfd, wfd, xfd = select.select([Nope()], [], [])
+except TypeError:
+    pass
+else:
+    print 'expected TypeError exception not raised'
+
+try:
+    rfd, wfd, xfd = select.select([Almost()], [], [])
+except TypeError:
+    pass
+else:
+    print 'expected TypeError exception not raised'
+
 
 def test():
-	import select
-	import os
-	cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do date; sleep 3; done'
+	cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
 	p = os.popen(cmd, 'r')
 	for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
 		print 'timeout =', tout
 		rfd, wfd, xfd = select.select([p], [], [], tout)
-		print rfd, wfd, xfd
+## 		print rfd, wfd, xfd
 		if (rfd, wfd, xfd) == ([], [], []):
 			continue
 		if (rfd, wfd, xfd) == ([p], [], []):
@@ -21,3 +51,4 @@
 		print 'Heh?'
 
 test()
+