end else begin\r
         secondlistener.onsessionAvailable := secondaccepthandler;\r
       end;\r
-      secondlistener.listen;\r
+      try\r
+        secondlistener.listen;\r
+      except\r
+        secondlistener.destroy;\r
+        secondlistener := nil;\r
+      end;\r
     end;\r
     {$endif}\r
   finally\r
 {$ifdef secondlistener}\r
 procedure tlsocket.internalclose(error:word);\r
 begin\r
-  if assigned(secondlistener) then secondlistener.destroy;\r
+  if assigned(secondlistener) then begin\r
+    secondlistener.destroy;\r
+    secondlistener := nil;\r
+  end;\r
   inherited internalclose(error);\r
 end;\r
 \r