diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index 514b75c..a4cbfc5 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -4,6 +4,7 @@
 import operator
 import copy
 import pickle
+import os
 
 class PassThru(Exception):
     pass
@@ -201,6 +202,8 @@
         self.assertEqual(s, set(self.word))
         s.__init__(self.otherword)
         self.assertEqual(s, set(self.otherword))
+        self.assertRaises(TypeError, s.__init__, s, 2);
+        self.assertRaises(TypeError, s.__init__, 1);
 
     def test_constructor_identity(self):
         s = self.thetype(range(3))
@@ -436,6 +439,17 @@
         if self.repr is not None:
             self.assertEqual(repr(self.set), self.repr)
 
+    def test_print(self):
+        try:
+            fo = open(test_support.TESTFN, "wb")
+            print >> fo, self.set,
+            fo.close()
+            fo = open(test_support.TESTFN, "rb")
+            self.assertEqual(fo.read(), repr(self.set))
+        finally:
+            fo.close()
+            os.remove(test_support.TESTFN)
+
     def test_length(self):
         self.assertEqual(len(self.set), self.length)
 
