diff --git a/Lib/test/test_grp.py b/Lib/test/test_grp.py
index 71c4897..76323a2 100755
--- a/Lib/test/test_grp.py
+++ b/Lib/test/test_grp.py
@@ -9,6 +9,7 @@
 
     def test_values(self):
         entries = grp.getgrall()
+        entriesbyname = {}
         entriesbygid = {}
 
         for e in entries:
@@ -22,18 +23,19 @@
             self.assertEqual(e[3], e.gr_mem)
             self.assert_(isinstance(e.gr_mem, list))
 
-            self.assertEqual(grp.getgrnam(e.gr_name), e)
             # The following won't work, because of duplicate entries
             # for one gid
             #    self.assertEqual(grp.getgrgid(e.gr_gid), e)
-            # instead of this collect all entries for one gid
+            # instead of this collect all entries for one gid/name
             # and check afterwards
+            entriesbyname.setdefault(e.gr_name, []).append(e)
             entriesbygid.setdefault(e.gr_gid, []).append(e)
 
         # check whether the entry returned by getgrgid()
         # for each uid is among those from getgrall() for this uid
         for e in entries:
             self.assert_(grp.getgrgid(e.gr_gid) in entriesbygid[e.gr_gid])
+            self.assert_(grp.getgrnam(e.gr_name) in entriesbyname[e.gr_name])
 
     def test_errors(self):
         self.assertRaises(TypeError, grp.getgrgid)
diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py
index 6cc52d7..dbdea79 100644
--- a/Lib/test/test_pwd.py
+++ b/Lib/test/test_pwd.py
@@ -7,6 +7,7 @@
 
     def test_values(self):
         entries = pwd.getpwall()
+        entriesbyname = {}
         entriesbyuid = {}
 
         for e in entries:
@@ -26,17 +27,18 @@
             self.assertEqual(e[6], e.pw_shell)
             self.assert_(isinstance(e.pw_shell, basestring))
 
-            self.assertEqual(pwd.getpwnam(e.pw_name), e)
             # The following won't work, because of duplicate entries
             # for one uid
             #    self.assertEqual(pwd.getpwuid(e.pw_uid), e)
             # instead of this collect all entries for one uid
             # and check afterwards
+            entriesbyname.setdefault(e.pw_name, []).append(e)
             entriesbyuid.setdefault(e.pw_uid, []).append(e)
 
         # check whether the entry returned by getpwuid()
         # for each uid is among those from getpwall() for this uid
         for e in entries:
+            self.assert_(pwd.getpwnam(e.pw_name) in entriesbyname[e.pw_name])
             self.assert_(pwd.getpwuid(e.pw_uid) in entriesbyuid[e.pw_uid])
 
     def test_errors(self):
