Changed where socket close is called on connection failure.
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index 7296472..a0b53e8 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -446,8 +446,12 @@
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         if hasattr(s, 'settimeout'):
             s.settimeout(timeout)
-        s.connect((self.host, self.port))
-        return s
+        try:
+            s.connect((self.host, self.port))
+            return s
+        except socket.error:
+            s.close()
+            raise
 
     def createSocket(self):
         """
@@ -469,9 +473,6 @@
                 self.retryTime = None # next time, no delay before trying
             except socket.error:
                 #Creation failed, so set the retry time and return.
-                if self.sock is not None:
-                    self.sock.close()
-                    self.sock = None
                 if self.retryTime is None:
                     self.retryPeriod = self.retryStart
                 else: