socket.ioctl is only available on Windows
diff --git a/Lib/socket.py b/Lib/socket.py
index 7ce2869..6b4b743 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -141,7 +141,10 @@
     'bind', 'connect', 'connect_ex', 'fileno', 'listen',
     'getpeername', 'getsockname', 'getsockopt', 'setsockopt',
     'sendall', 'setblocking',
-    'settimeout', 'gettimeout', 'shutdown', 'ioctl')
+    'settimeout', 'gettimeout', 'shutdown')
+
+if os.name == "nt":
+    _socketmethods = _socketmethods + ('ioctl',)
 
 if sys.platform == "riscos":
     _socketmethods = _socketmethods + ('sleeptaskw',)
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 3e2d04c..8f69a40 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -9,6 +9,7 @@
 import thread, threading
 import Queue
 import sys
+import os
 import array
 from weakref import proxy
 import signal
@@ -500,6 +501,15 @@
         self.assertEqual(sock.proto, 0)
         sock.close()
 
+    def test_sock_ioctl(self):
+        if os.name != "nt":
+            return
+        self.assert_(hasattr(socket.socket, 'ioctl'))
+        self.assert_(hasattr(socket, 'SIO_RCVALL'))
+        self.assert_(hasattr(socket, 'RCVALL_ON'))
+        self.assert_(hasattr(socket, 'RCVALL_OFF'))
+
+
 class BasicTCPTest(SocketConnectedTest):
 
     def __init__(self, methodName='runTest'):