Closes #13140: Fix the daemon_threads attribute of ThreadingMixIn.
diff --git a/Lib/socketserver.py b/Lib/socketserver.py
index 0e2ba83..cd367f1 100644
--- a/Lib/socketserver.py
+++ b/Lib/socketserver.py
@@ -588,8 +588,7 @@
         """Start a new thread to process the request."""
         t = threading.Thread(target = self.process_request_thread,
                              args = (request, client_address))
-        if self.daemon_threads:
-            t.daemon = True
+        t.daemon = self.daemon_threads
         t.start()
 
 
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 08d79c0..b3660c1 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -123,7 +123,6 @@
         self.assertEqual(server.server_address, server.socket.getsockname())
         return server
 
-    @unittest.skipUnless(threading, 'Threading required for this test.')
     @reap_threads
     def run_server(self, svrcls, hdlrbase, testfunc):
         server = self.make_server(self.pickaddr(svrcls.address_family),
diff --git a/Misc/NEWS b/Misc/NEWS
index a605909..c91c094 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -66,6 +66,8 @@
 Library
 -------
 
+- Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn.
+
 - Issue #13339: Fix compile error in posixmodule.c due to missing semicolon.
   Thanks to Robert Xiao.