diff --git a/Doc/lib/libasyncore.tex b/Doc/lib/libasyncore.tex
index 65de1e4..4425da7 100644
--- a/Doc/lib/libasyncore.tex
+++ b/Doc/lib/libasyncore.tex
@@ -222,29 +222,37 @@
 
 \subsection{asyncore Example basic HTTP client \label{asyncore-example}}
 
-As a basic example, below is a very basic HTTP client that uses the 
-\class{dispatcher} class to implement its socket handling:
+Here is a very basic HTTP client that uses the \class{dispatcher}
+class to implement its socket handling:
 
 \begin{verbatim}
+import asyncore, socket
+
 class http_client(asyncore.dispatcher):
-    def __init__(self, host,path):
+
+    def __init__(self, host, path):
         asyncore.dispatcher.__init__(self)
-        self.path = path
         self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
         self.connect( (host, 80) )
-        self.buffer = 'GET %s HTTP/1.0\r\n\r\n' % self.path
-        
+        self.buffer = 'GET %s HTTP/1.0\r\n\r\n' % path
+
     def handle_connect(self):
         pass
-        
+
+    def handle_close(self):
+        self.close()
+
     def handle_read(self):
-        data = self.recv(8192)
-        print data
-        
+        print self.recv(8192)
+
     def writable(self):
         return (len(self.buffer) > 0)
-    
+
     def handle_write(self):
         sent = self.send(self.buffer)
         self.buffer = self.buffer[sent:]
+
+c = http_client('www.python.org', '/')
+
+asyncore.loop()
 \end{verbatim}
