diff --git a/apiclient/contrib/latitude/future.json b/apiclient/contrib/latitude/future.json
index 3fef33a..e44d410 100644
--- a/apiclient/contrib/latitude/future.json
+++ b/apiclient/contrib/latitude/future.json
@@ -2,73 +2,73 @@
   "data": {
     "latitude": {
       "v1": {
-        "baseUrl": "https://www.googleapis.com/", 
+        "baseUrl": "https://www.googleapis.com/",
         "auth": {
           "request": {
             "url": "https://www.google.com/accounts/OAuthGetRequestToken",
             "parameters": {
               "xoauth_displayname": {
                 "parameterType": "query",
-                "required": False
+                "required": false
               },
               "domain": {
                 "parameterType": "query",
-                "required": True
+                "required": true
               },
               "scope": {
                 "parameterType": "query",
-                "required": True
-              },
-            },
+                "required": true
+              }
+            }
           },
           "authorize": {
             "url": "https://www.google.com/latitude/apps/OAuthAuthorizeToken",
             "parameters": {
               "oauth_token": {
                 "parameterType": "query",
-                "required": True
+                "required": true
               },
               "iconUrl": {
                 "parameterType": "query",
-                "required": False
+                "required": false
               },
               "domain": {
                 "parameterType": "query",
-                "required": True
+                "required": true
               },
               "scope": {
                 "parameterType": "query",
-                "required": True
-              },
-            },
+                "required": true
+              }
+            }
           },
           "access": {
             "url": "https://www.google.com/accounts/OAuthGetAccessToken",
             "parameters": {
               "domain": {
                 "parameterType": "query",
-                "required": True
+                "required": true
               },
               "scope": {
                 "parameterType": "query",
-                "required": True
-              },
-            },
-          },
+                "required": true
+              }
+            }
+          }
         },
         "resources": {
           "currentLocation": {
             "methods": {
-              "delete": {}, 
-              "get": {}, 
+              "delete": {},
+              "get": {},
               "insert": {}
             }
-          }, 
+          },
           "location": {
             "methods": {
-              "delete": {}, 
-              "get": {}, 
-              "insert": {}, 
+              "delete": {},
+              "get": {},
+              "insert": {},
               "list": {}
             }
           }
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 9ba279d..cbba1dc 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -108,13 +108,15 @@
         raise HttpError(simplejson.loads(content)['error'])
 
 
-def build(serviceName, version, http=httplib2.Http(),
+def build(serviceName, version, http=None,
     discoveryServiceUrl=DISCOVERY_URI, auth=None, model=JsonModel()):
   params = {
       'api': serviceName,
       'apiVersion': version
       }
 
+  if http is None:
+    http = httplib2.Http()
   requested_url = uritemplate.expand(discoveryServiceUrl, params)
   logging.info('URL being requested: %s' % requested_url)
   resp, content = http.request(requested_url)
diff --git a/samples/helpdoc/apiclient b/samples/helpdoc/apiclient
new file mode 120000
index 0000000..22e4c9c
--- /dev/null
+++ b/samples/helpdoc/apiclient
@@ -0,0 +1 @@
+../../apiclient/
\ No newline at end of file
diff --git a/samples/helpdoc/app.yaml b/samples/helpdoc/app.yaml
new file mode 100644
index 0000000..5a357dc
--- /dev/null
+++ b/samples/helpdoc/app.yaml
@@ -0,0 +1,12 @@
+application: api-python-client-doc
+version: 1
+runtime: python
+api_version: 1
+
+handlers:
+- url: /static
+  static_dir: static
+
+- url: .*
+  script: main.py
+
diff --git a/samples/helpdoc/httplib2 b/samples/helpdoc/httplib2
new file mode 120000
index 0000000..488ae9f
--- /dev/null
+++ b/samples/helpdoc/httplib2
@@ -0,0 +1 @@
+../../httplib2/
\ No newline at end of file
diff --git a/samples/helpdoc/index.yaml b/samples/helpdoc/index.yaml
new file mode 100644
index 0000000..a3b9e05
--- /dev/null
+++ b/samples/helpdoc/index.yaml
@@ -0,0 +1,11 @@
+indexes:
+
+# AUTOGENERATED
+
+# This index.yaml is automatically updated whenever the dev_appserver
+# detects that a new type of query is run.  If you want to manage the
+# index.yaml file manually, remove the above marker line (the line
+# saying "# AUTOGENERATED").  If you want to manage some indexes
+# manually, move them above the marker line.  The index.yaml file is
+# automatically uploaded to the admin console when you next deploy
+# your application using appcfg.py.
diff --git a/samples/helpdoc/main.py b/samples/helpdoc/main.py
new file mode 100755
index 0000000..ae87b3e
--- /dev/null
+++ b/samples/helpdoc/main.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+#
+# Copyright 2007 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+__author__ = 'jcgregorio@google.com (Joe Gregorio)'
+
+
+import inspect
+import pydoc
+import re
+
+from apiclient.discovery import build
+
+from google.appengine.ext import webapp
+from google.appengine.ext.webapp import util
+
+# Replicate render_doc here from pydoc.py as it isn't available in Python 2.5
+class _OldStyleClass: pass
+
+def render_doc(thing, title='Python Library Documentation: %s', forceload=0):
+    """Render text documentation, given an object or a path to an object."""
+    object, name = pydoc.resolve(thing, forceload)
+    desc = pydoc.describe(object)
+    module = inspect.getmodule(object)
+    if name and '.' in name:
+        desc += ' in ' + name[:name.rfind('.')]
+    elif module and module is not object:
+        desc += ' in module ' + module.__name__
+    if type(object) is type(_OldStyleClass()):
+        # If the passed object is an instance of an old-style class,
+        # document its available methods instead of its value.
+        object = object.__class__
+    elif not (inspect.ismodule(object) or
+              inspect.isclass(object) or
+              inspect.isroutine(object) or
+              inspect.isgetsetdescriptor(object) or
+              inspect.ismemberdescriptor(object) or
+              isinstance(object, property)):
+        # If the passed object is a piece of data or an instance,
+        # document its available methods instead of its value.
+        object = type(object)
+        desc += ' object'
+    return title % desc + '\n\n' + pydoc.text.document(object, name)
+
+
+class MainHandler(webapp.RequestHandler):
+
+  def get(self):
+    self.response.out.write("""
+    <h1>Google API Client for Python Documentation</h1>
+    <ul>
+      <li><a href='/buzz/v1'>buzz</a>
+      <li><a href='/moderator/v1'>moderator</a>
+      <li><a href='/latitude/v1'>latitude</a>
+    </ul>
+    """)
+
+
+class ServiceHandler(webapp.RequestHandler):
+
+  def get(self, service_name, version):
+    service = build(service_name, version)
+    page = "<p><a href='/'>Home</a></p><pre>%s</pre>" % pydoc.plain(render_doc(service))
+
+    collections = []
+    for name in dir(service):
+      if not "_" in name and callable(getattr(service, name)):
+        collections.append(name)
+
+    for name in collections:
+      page = re.sub('(%s) =' % name, r'<a href="/%s/%s/%s">\1</a> =' % (service_name, version, name), page)
+
+    self.response.out.write(page)
+
+
+class CollectionHandler(webapp.RequestHandler):
+
+  def get(self, service_name, version, collection):
+    service = build(service_name, version)
+    page = "<p><a href='/'>Home</a></p><pre>%s</pre>" % pydoc.plain(render_doc(getattr(service, collection)()))
+    self.response.out.write(page)
+
+
+def main():
+  application = webapp.WSGIApplication(
+      [
+      (r'/', MainHandler),
+      (r'/(\w*)/(\w*)', ServiceHandler),
+      (r'/(\w*)/(\w*)/(\w*)', CollectionHandler),
+      ],
+      debug=True)
+  util.run_wsgi_app(application)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/samples/helpdoc/oauth2 b/samples/helpdoc/oauth2
new file mode 120000
index 0000000..af104cc
--- /dev/null
+++ b/samples/helpdoc/oauth2
@@ -0,0 +1 @@
+../../oauth2
\ No newline at end of file
diff --git a/samples/helpdoc/simplejson b/samples/helpdoc/simplejson
new file mode 120000
index 0000000..148c7cf
--- /dev/null
+++ b/samples/helpdoc/simplejson
@@ -0,0 +1 @@
+../../simplejson/
\ No newline at end of file
diff --git a/samples/helpdoc/uritemplate b/samples/helpdoc/uritemplate
new file mode 120000
index 0000000..ce92dcb
--- /dev/null
+++ b/samples/helpdoc/uritemplate
@@ -0,0 +1 @@
+../../uritemplate/
\ No newline at end of file
