diff --git a/Lib/collections.py b/Lib/collections.py
index 356d961..e551f20 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -40,7 +40,7 @@
         field_names = field_names.replace(',', ' ').split() # names separated by whitespace and/or commas
     field_names = tuple(field_names)
     for name in (typename,) + field_names:
-        if not name.replace('_', '').isalnum():
+        if not all(c.isalnum() or c=='_' for c in name):
             raise ValueError('Type names and field names can only contain alphanumeric characters and underscores: %r' % name)
         if _iskeyword(name):
             raise ValueError('Type names and field names cannot be a keyword: %r' % name)
@@ -48,7 +48,7 @@
             raise ValueError('Type names and field names cannot start with a number: %r' % name)
     seen_names = set()
     for name in field_names:
-        if name.startswith('__') and name.endswith('__'):
+        if name.startswith('__') and name.endswith('__') and len(name) > 3:
             raise ValueError('Field names cannot start and end with double underscores: %r' % name)
         if name in seen_names:
             raise ValueError('Encountered duplicate field name: %r' % name)
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 52bae9a..0b0b029 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -29,6 +29,7 @@
         self.assertRaises(ValueError, namedtuple, 'abc', 'efg efg ghi')    # duplicate field
 
         namedtuple('Point0', 'x1 y2')   # Verify that numbers are allowed in names
+        namedtuple('_', '_ __ ___')     # Verify that underscores are allowed
 
     def test_instance(self):
         Point = namedtuple('Point', 'x y')
