diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 9e3b701..fd9127b 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -115,7 +115,7 @@
 		if port: self.port = port
 		self.passiveserver = 0
 		self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-		self.sock.connect(self.host, self.port)
+		self.sock.connect((self.host, self.port))
 		self.file = self.sock.makefile('rb')
 		self.welcome = self.getresp()
 		return self.welcome
@@ -265,7 +265,7 @@
 		if self.passiveserver:
 			host, port = parse227(self.sendcmd('PASV'))
 			conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-			conn.connect(host, port)
+			conn.connect((host, port))
 			resp = self.sendcmd(cmd)
 			if resp[0] <> '1':
 				raise error_reply, resp
diff --git a/Lib/gopherlib.py b/Lib/gopherlib.py
index d805f15..6965fbd 100644
--- a/Lib/gopherlib.py
+++ b/Lib/gopherlib.py
@@ -66,7 +66,7 @@
     elif type(port) == type(''):
         port = string.atoi(port)
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-    s.connect(host, port)
+    s.connect((host, port))
     s.send(selector + CRLF)
     s.shutdown(1)
     return s.makefile('rb')
diff --git a/Lib/httplib.py b/Lib/httplib.py
index a43adde..8c8084e 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -109,7 +109,7 @@
         if not port: port = HTTP_PORT
         self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         if self.debuglevel > 0: print 'connect:', (host, port)
-        self.sock.connect(host, port)
+        self.sock.connect((host, port))
 
     def send(self, str):
         """Send `str' to the server."""
@@ -209,7 +209,7 @@
             if not port: port = HTTPS_PORT
             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
             if self.debuglevel > 0: print 'connect:', (host, port)
-            sock.connect(host, port)
+            sock.connect((host, port))
             ssl = socket.ssl(sock, self.key_file, self.cert_file)
             self.sock = FakeSocket(sock, ssl)
 
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index 31893a5..921ee0c 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -191,7 +191,7 @@
 	def open(self, host, port):
 		"""Setup 'self.sock' and 'self.file'."""
 		self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-		self.sock.connect(self.host, self.port)
+		self.sock.connect((self.host, self.port))
 		self.file = self.sock.makefile('r')
 
 
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 292e6b0..81449b0 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -108,7 +108,7 @@
 		self.host = host
 		self.port = port
 		self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-		self.sock.connect(self.host, self.port)
+		self.sock.connect((self.host, self.port))
 		self.file = self.sock.makefile('rb')
 		self.debugging = 0
 		self.welcome = self.getresp()
diff --git a/Lib/poplib.py b/Lib/poplib.py
index a4fd2bc..118811c 100644
--- a/Lib/poplib.py
+++ b/Lib/poplib.py
@@ -77,7 +77,7 @@
 		self.host = host
 		self.port = port
 		self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-		self.sock.connect(self.host, self.port)
+		self.sock.connect((self.host, self.port))
 		self.file = self.sock.makefile('rb')
 		self._debugging = 0
 		self.welcome = self._getresp()
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index f58d5fc..4462d62 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -213,7 +213,7 @@
         if not port: port = SMTP_PORT
         self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         if self.debuglevel > 0: print 'connect:', (host, port)
-        self.sock.connect(host, port)
+        self.sock.connect((host, port))
         (code,msg)=self.getreply()
         if self.debuglevel >0 : print "connect:", msg
         return (code,msg)
