Updated docs
diff --git a/ref/cache-objects.html b/ref/cache-objects.html
index a891915..dcf9465 100644
--- a/ref/cache-objects.html
+++ b/ref/cache-objects.html
@@ -63,7 +63,7 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-22' xml:id='l2h-22' class="method">get</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-23' xml:id='l2h-23' class="method">get</tt></b>(</nobr></td>
   <td><var>key</var>)</td></tr></table></dt>
 <dd>
 Takes a string <var>key</var> and returns the value as a string.
@@ -71,7 +71,7 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-23' xml:id='l2h-23' class="method">set</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-24' xml:id='l2h-24' class="method">set</tt></b>(</nobr></td>
   <td><var>key, value</var>)</td></tr></table></dt>
 <dd>
 Takes a string <var>key</var> and <var>value</var> and stores it in the cache.
@@ -79,7 +79,7 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-24' xml:id='l2h-24' class="method">delete</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-25' xml:id='l2h-25' class="method">delete</tt></b>(</nobr></td>
   <td><var>key</var>)</td></tr></table></dt>
 <dd>
 Deletes the cached value stored at <var>key</var>. The value
diff --git a/ref/http-objects.html b/ref/http-objects.html
index 1cd49ad..597b7d5 100644
--- a/ref/http-objects.html
+++ b/ref/http-objects.html
@@ -60,7 +60,7 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-14' xml:id='l2h-14' class="method">request</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-15' xml:id='l2h-15' class="method">request</tt></b>(</nobr></td>
   <td><var>uri, </var><big>[</big><var>method="GET", body=None, headers=None, redirections=DEFAULT_MAX_REDIRECTS, connection_type=None</var><big>]</big><var></var>)</td></tr></table></dt>
 <dd>
 Performs a single HTTP request.
@@ -92,7 +92,7 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-15' xml:id='l2h-15' class="method">add_credentials</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-16' xml:id='l2h-16' class="method">add_credentials</tt></b>(</nobr></td>
   <td><var>name, password, </var><big>[</big><var>domain=None</var><big>]</big><var></var>)</td></tr></table></dt>
 <dd>
 Adds a name and password that will be used when a request 
@@ -104,7 +104,7 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-16' xml:id='l2h-16' class="method">add_certificate</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-17' xml:id='l2h-17' class="method">add_certificate</tt></b>(</nobr></td>
   <td><var>key, cert, domain</var>)</td></tr></table></dt>
 <dd>
 Add a <var>key</var> and <var>cert</var> that will be used for an SSL connection
@@ -114,14 +114,14 @@
 
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
-  <td><nobr><b><tt id='l2h-17' xml:id='l2h-17' class="method">clear_credentials</tt></b>(</nobr></td>
+  <td><nobr><b><tt id='l2h-18' xml:id='l2h-18' class="method">clear_credentials</tt></b>(</nobr></td>
   <td><var></var>)</td></tr></table></dt>
 <dd>
 Remove all the names and passwords used for authentication.
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-18' xml:id='l2h-18' class="member">follow_redirects</tt></b></dt>
+<dl><dt><b><tt id='l2h-19' xml:id='l2h-19' class="member">follow_redirects</tt></b></dt>
 <dd>
 If <code>True</code>, which is the default, safe redirects are followed, where
 safe means that the client is only doing a <code>GET</code> or <code>HEAD</code> on the
@@ -132,7 +132,7 @@
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-19' xml:id='l2h-19' class="member">follow_all_redirects</tt></b></dt>
+<dl><dt><b><tt id='l2h-20' xml:id='l2h-20' class="member">follow_all_redirects</tt></b></dt>
 <dd>
 If <code>False</code>, which is the default, only safe redirects are followed, where
 safe means that the client is only doing a <code>GET</code> or <code>HEAD</code> on the
@@ -143,7 +143,7 @@
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-20' xml:id='l2h-20' class="member">force_exception_to_status_code</tt></b></dt>
+<dl><dt><b><tt id='l2h-21' xml:id='l2h-21' class="member">force_exception_to_status_code</tt></b></dt>
 <dd>
 If <code>True</code>, which is the default, then no <tt class="module">httplib2</tt> exceptions will be thrown. Instead,
 those error conditions will be turned into <tt class="class">Response</tt> objects
@@ -154,7 +154,7 @@
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-21' xml:id='l2h-21' class="member">ignore_etag</tt></b></dt>
+<dl><dt><b><tt id='l2h-22' xml:id='l2h-22' class="member">ignore_etag</tt></b></dt>
 <dd>
 Defaults to <code>False</code>. If <code>True</code>, then any etags present in the cached response
 are ignored when processing the current request, i.e. httplib2 does <strong>not</strong> use
diff --git a/ref/httplib2-example.html b/ref/httplib2-example.html
index 0543074..756942b 100644
--- a/ref/httplib2-example.html
+++ b/ref/httplib2-example.html
@@ -125,6 +125,19 @@
 </pre></div>
 
 <p>
+Here is an example of using a proxy server:
+<div class="verbatim"><pre>
+import httplib2
+import socks
+
+httplib2.debuglevel=4
+h = httplib2.Http(proxy_info = httplib2.ProxyInfo(socks.PROXY_TYPE_HTTP, 'localhost', 8000))
+r,c = h.request("http://bitworking.org/news/")
+</pre></div>
+
+<p>
+
+<p>
 <IMG
  WIDTH="556" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
  SRC="img1.png"
diff --git a/ref/module-httplib2.html b/ref/module-httplib2.html
index e574ff0..ce4d931 100644
--- a/ref/module-httplib2.html
+++ b/ref/module-httplib2.html
@@ -95,6 +95,9 @@
 <dt><strong>Compression</strong></dt>
 <dd>Handles both 'deflate' and 'gzip' types of compression.
 </dd>
+<dt><strong>Proxies</strong></dt>
+<dd>If the Socksipy module is installed then httplib2 can handle sock4, sock5 and http proxies.
+</dd>
 <dt><strong>Lost update support</strong></dt>
 <dd>Automatically adds back ETags into PUT requests to resources we have already cached. This implements Section 3.2 of Detecting the Lost Update Problem Using Unreserved Checkout
 </dd>
@@ -170,13 +173,16 @@
 <p>
 <dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
   <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-11' xml:id='l2h-11' class="class">Http</tt></b>(</nobr></td>
-  <td><var></var><big>[</big><var>cache=None</var><big>]</big><var>, </var><big>[</big><var>timeout=None</var><big>]</big><var></var>)</td></tr></table></dt>
+  <td><var></var><big>[</big><var>cache=None</var><big>]</big><var>, </var><big>[</big><var>timeout=None</var><big>]</big><var>, </var><big>[</big><var>proxy_info=None</var><big>]</big><var></var>)</td></tr></table></dt>
 <dd>
 The class that represents a client HTTP interface.
 The <var>cache</var> parameter is either the name of a directory
 to be used as a flat file cache, or it must an object that 
 implements the required caching interface.
 The <var>timeout</var> parameter is the socket level timeout.
+The <var>proxy_info</var> is an instance of <tt class="class">ProxyInfo</tt> and is supplied
+if a proxy is to be used. Note that the Socksipy module must be
+installed for proxy support to work.
 </dl>
 
 <p>
@@ -206,6 +212,18 @@
 </dl>
 
 <p>
+<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
+  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-14' xml:id='l2h-14' class="class">ProxyInfo</tt></b>(</nobr></td>
+  <td><var>proxy_type, proxy_host, proxy_port, </var><big>[</big><var>proxy_rdns=None</var><big>]</big><var>, </var><big>[</big><var>proxy_user=None</var><big>]</big><var>, </var><big>[</big><var>proxy_pass=None</var><big>]</big><var></var>)</td></tr></table></dt>
+<dd>
+The parameter <var>proxy_type</var> must be set to one of socks.PROXY_TYPE_XXX
+constants. The <var>proxy_host</var> and <var>proxy_port</var> must be set to the location
+of the proxy. The optional <var>proxy_rdns</var> should be set to True if
+the DNS server on the proxy should be used. The <var>proxy_user</var> and 
+<var>proxy_pass</var> are supplied when the proxy is protected by authentication.
+</dl>
+
+<p>
 
 <p><br /></p><hr class='online-navigation' />
 <div class='online-navigation'>
diff --git a/ref/response-objects.html b/ref/response-objects.html
index e70dc01..e3fbab4 100644
--- a/ref/response-objects.html
+++ b/ref/response-objects.html
@@ -62,32 +62,32 @@
 a Response object also has:
 
 <p>
-<dl><dt><b><tt id='l2h-25' xml:id='l2h-25' class="member">fromcache</tt></b></dt>
+<dl><dt><b><tt id='l2h-26' xml:id='l2h-26' class="member">fromcache</tt></b></dt>
 <dd>
 If <code>true</code> the the response was returned from the cache.
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-26' xml:id='l2h-26' class="member">version</tt></b></dt>
+<dl><dt><b><tt id='l2h-27' xml:id='l2h-27' class="member">version</tt></b></dt>
 <dd>
 The version of HTTP that the server supports. A value
 of 11 means '1.1'.
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-27' xml:id='l2h-27' class="member">status</tt></b></dt>
+<dl><dt><b><tt id='l2h-28' xml:id='l2h-28' class="member">status</tt></b></dt>
 <dd>
 The numerical HTTP status code returned in the response.
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-28' xml:id='l2h-28' class="member">reason</tt></b></dt>
+<dl><dt><b><tt id='l2h-29' xml:id='l2h-29' class="member">reason</tt></b></dt>
 <dd>
 The human readable component of the HTTP response status code.
 </dl>
 
 <p>
-<dl><dt><b><tt id='l2h-29' xml:id='l2h-29' class="member">previous</tt></b></dt>
+<dl><dt><b><tt id='l2h-30' xml:id='l2h-30' class="member">previous</tt></b></dt>
 <dd>
 If redirects are followed then the <tt class="class">Response</tt> object returned
 is just for the very last HTTP request and <var>previous</var> points to