Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index 00464a9..3f0d2d3 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -130,7 +130,8 @@
             is_w = obj.writable()
             if is_r:
                 r.append(fd)
-            if is_w:
+            # accepting sockets should not be writable
+            if is_w and not obj.accepting:
                 w.append(fd)
             if is_r or is_w:
                 e.append(fd)
@@ -177,7 +178,8 @@
             flags = 0
             if obj.readable():
                 flags |= select.POLLIN | select.POLLPRI
-            if obj.writable():
+            # accepting sockets should not be writable
+            if obj.writable() and not obj.accepting:
                 flags |= select.POLLOUT
             if flags:
                 # Only check for exceptions if object was either readable
diff --git a/Misc/NEWS b/Misc/NEWS
index 1e98768..63d5c24 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -22,6 +22,8 @@
 Library
 -------
 
+- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
+
 - Issue #12009: Fixed regression in netrc file comment handling.
 
 Extension Modules