diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py
index a463868..8813c6e 100644
--- a/Lib/test/test_select.py
+++ b/Lib/test/test_select.py
@@ -4,6 +4,8 @@
 import os
 import sys
 
+@unittest.skipIf(sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'),
+                 "can't easily test on this system")
 class SelectTestCase(unittest.TestCase):
 
     class Nope:
@@ -19,11 +21,14 @@
         self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
         self.assertRaises(TypeError, select.select, [], [], [], "not a number")
 
+    def test_returned_list_identity(self):
+        # See issue #8329
+        r, w, x = select.select([], [], [], 1)
+        self.assertIsNot(r, w)
+        self.assertIsNot(r, x)
+        self.assertIsNot(w, x)
+
     def test_select(self):
-        if sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'):
-            if support.verbose:
-                print("Can't test select easily on", sys.platform)
-            return
         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:
