diff --git a/Lib/httplib.py b/Lib/httplib.py
index 68553c5..fa7d2b7 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -28,20 +28,13 @@
 # connection for each request.)
 
 
-import os
 import socket
 import string
-import regex
-import regsub
 import mimetools
 
 HTTP_VERSION = 'HTTP/1.0'
-HTTP_VERSIONS_ACCEPTED = 'HTTP/1\.[0-9.]+'
 HTTP_PORT = 80
 
-replypat = HTTP_VERSIONS_ACCEPTED + '[ \t]+\([0-9][0-9][0-9]\)\(.*\)'
-replyprog = regex.compile(replypat)
-
 class HTTP:
 
 	def __init__(self, host = '', port = 0):
@@ -83,15 +76,18 @@
 
 	def getreply(self):
 		self.file = self.sock.makefile('rb')
-		self.sock = None
 		line = self.file.readline()
 		if self.debuglevel > 0: print 'reply:', `line`
-		if replyprog.match(line) < 0:
-			self.headers = None
-			return -1, line, self.headers
-		errcode, errmsg = replyprog.group(1, 2)
-		errcode = string.atoi(errcode)
-		errmsg = string.strip(errmsg)
+		try:
+		    [ver, code, msg] = string.split(line, None, 2)
+		except ValueError:
+		    self.headers = None
+		    return -1, line, self.headers
+		if ver[:5] != 'HTTP/':
+		    self.headers = None
+		    return -1, line, self.headers
+		errcode = string.atoi(code)
+                errmsg = string.strip(msg)
 		self.headers = mimetools.Message(self.file, 0)
 		return errcode, errmsg, self.headers
 
@@ -102,6 +98,9 @@
 		if self.file:
 			self.file.close()
 		self.file = None
+		if self.sock:
+		    self.sock.close()
+		self.sock = None
 
 
 def test():
