This is probably not Zope specific, but since I get this in a Zope product I am writing, I will post here. My product uses urllib.urlopen to retrieve images generated by an Internet Map server and then displays them on a web page. Every now and again I get an "error" exception (I guess this is socket.error) with the description "No buffer space available". This probably has to do with the fact that Windows 2000 Professional only allows a limited amount of connections and this happens when you run out of connections (I found this after searching around for this type of error). Unfortunately I do not have the choice to go to a better operating system that is not crippled in this way. The problem seems especially bad when running more than one instance of Zope in addition to the Map server. Is there any way of determining from Python how many connections are left? Or would this rather be somewhere in the Windows libraries? Any suggestions on working around this problem - am I doing something wrong with urllib.urlopen that may cause connections to not be released? Thanks Etienne Sample traceback: Traceback (most recent call last): File "V:\ZopeInstanceHome27\Products\ZIMSViewerPlugins\PyIMSConnector\TestMap.py", line 26, i n setUp self.server = TestServer.getServer() File "V:\ZopeInstanceHome27\Products\ZIMSViewerPlugins\PyIMSConnector\TestServer.py", line 29 , in getServer TestServer.environment['ArcIMSProxyPassword']) File "V:\ZopeInstanceHome27\Products\ZIMSViewerPlugins\PyIMSConnector\Server.py", line 37, in __init__ self.reload() File "V:\ZopeInstanceHome27\Products\ZIMSViewerPlugins\PyIMSConnector\Server.py", line 45, in reload responseString = self.connector.sendRequest(requestString) File "c:\!projects\python\PyIMSConnector\ConnectorBase.py", line 45, in sendRequest raise error ConnectionError: [Errno Could not connect to the server 'http://integervpc'] ('socket error', < socket.error instance at 0x010B6968>) code that causes the error (the error is caught then re-raised, that's why the traceback is not complete): f = urllib.urlopen( "%s/servlet/com.esri.esrimap.Esrimap?"\ "ServiceName=%s&ClientVersion=4.0%s&Form=True&Encode=False" %( self.serverAddress, mapServiceName, customService), data=data) htmlResponse = f.read() f.close() It probably happens at urlopen or f.read()