diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
index a54594a..b11c9d6 100755
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -163,6 +163,7 @@
         a = array.array(self.typecode, 2*self.example)
         self.assertRaises(TypeError, a.tofile)
         self.assertRaises(TypeError, a.tofile, cStringIO.StringIO())
+        test_support.unlink(test_support.TESTFN)
         f = open(test_support.TESTFN, 'wb')
         try:
             a.tofile(f)
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py
index a185f78..0b751d8 100644
--- a/Lib/test/test_deque.py
+++ b/Lib/test/test_deque.py
@@ -63,6 +63,7 @@
         self.assertEqual(list(d), range(7, 10))
         d = deque(xrange(200), maxlen=10)
         d.append(d)
+        test_support.unlink(test_support.TESTFN)
         fo = open(test_support.TESTFN, "wb")
         try:
             print >> fo, d,
@@ -281,6 +282,7 @@
     def test_print(self):
         d = deque(xrange(200))
         d.append(d)
+        test_support.unlink(test_support.TESTFN)
         fo = open(test_support.TESTFN, "wb")
         try:
             print >> fo, d,
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 1704a60..a1a267e 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -25,13 +25,10 @@
     filename = test_support.TESTFN
 
     def setUp (self):
-        pass
+        test_support.unlink(self.filename)
 
     def tearDown (self):
-        try:
-            os.unlink(self.filename)
-        except os.error:
-            pass
+        test_support.unlink(self.filename)
 
 
     def test_write (self):
diff --git a/Lib/test/test_uu.py b/Lib/test/test_uu.py
index 346cfb2..25d9b60 100644
--- a/Lib/test/test_uu.py
+++ b/Lib/test/test_uu.py
@@ -114,6 +114,7 @@
     def test_encode(self):
         fin = fout = None
         try:
+            test_support.unlink(self.tmpin)
             fin = open(self.tmpin, 'wb')
             fin.write(plaintext)
             fin.close()
@@ -143,6 +144,7 @@
     def test_decode(self):
         f = None
         try:
+            test_support.unlink(self.tmpin)
             f = open(self.tmpin, 'w')
             f.write(encodedtextwrapped % (0644, self.tmpout))
             f.close()
