Use test_support.unlink instead of os.unlink in tearDown().  (Seems to fix an occasional failure in Windows Vista.)
diff --git a/Lib/test/test_shelve.py b/Lib/test/test_shelve.py
index 447d06d..ffd2120 100644
--- a/Lib/test/test_shelve.py
+++ b/Lib/test/test_shelve.py
@@ -99,7 +99,7 @@
         self._db = []
         if not self._in_mem:
             for f in glob.glob(self.fn+"*"):
-                os.unlink(f)
+                test_support.unlink(f)
 
 class TestAsciiFileShelve(TestShelveBase):
     _args={'protocol':0}