diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 5a0ba33..9ba279d 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -28,6 +28,7 @@
 import uritemplate
 import urllib
 import urlparse
+from apiclient.http import HttpRequest
 
 try:
   import simplejson
@@ -228,10 +229,8 @@
       url = urlparse.urljoin(self._baseUrl, expanded_url + query)
 
       logging.info('URL being requested: %s' % url)
-      resp, content = self._http.request(
-          url, method=httpMethod, headers=headers, body=body)
-
-      return self._model.response(resp, content)
+      return HttpRequest(self._http, url, method=httpMethod, body=body,
+                         headers=headers, postproc=self._model.response)
 
     docs = ['A description of how to use this function\n\n']
     for arg in argmap.iterkeys():
@@ -271,7 +270,8 @@
       logging.info('URL being requested: %s' % url)
       resp, content = self._http.request(url, method='GET', headers=headers)
 
-      return self._model.response(resp, content)
+      return HttpRequest(self._http, url, method='GET',
+                         headers=headers, postproc=self._model.response)
 
     setattr(theclass, methodName, method)
 
diff --git a/functional_tests/test_services.py b/functional_tests/test_services.py
index d291dd3..5a9fa23 100644
--- a/functional_tests/test_services.py
+++ b/functional_tests/test_services.py
@@ -26,6 +26,6 @@
     max_results = 2
     activities = buzz.activities().list(userId='googlebuzz', scope='@self',
                                         max_comments=max_results*2 ,max_liked=max_results*3,
-                                        max_results=max_results)['items']
+                                        max_results=max_results).execute()['items']
     activity_count = len(activities)
     self.assertEquals(max_results, activity_count)
diff --git a/samples/appengine/main.py b/samples/appengine/main.py
index 14c6593..2116562 100755
--- a/samples/appengine/main.py
+++ b/samples/appengine/main.py
@@ -58,7 +58,8 @@
       http = c.credentials.authorize(http)
       p = build("buzz", "v1", http=http)
       activities = p.activities()
-      activitylist = activities.list(scope='@consumption', userId='@me')
+      activitylist = activities.list(scope='@consumption',
+                                     userId='@me').execute()
       logging.info(activitylist)
       path = os.path.join(os.path.dirname(__file__), 'welcome.html')
       logout = users.create_logout_url('/')
diff --git a/samples/cmdline/buzz.py b/samples/cmdline/buzz.py
index de871eb..60c7d50 100644
--- a/samples/cmdline/buzz.py
+++ b/samples/cmdline/buzz.py
@@ -28,7 +28,7 @@
 
   p = build("buzz", "v1", http=http)
   activities = p.activities()
-  activitylist = activities.list(scope='@self', userId='@me')
+  activitylist = activities.list(scope='@self', userId='@me').execute()
   print activitylist['items'][0]['title']
   activities.insert(userId='@me', body={
     'title': 'Testing insert',
@@ -36,7 +36,7 @@
       'content': u'Just a short note to show that insert is working. ☄',
       'type': 'note'}
     }
-  )
+  ).execute()
 
 if __name__ == '__main__':
   main()
diff --git a/samples/cmdline/moderator.py b/samples/cmdline/moderator.py
index 3bca162..36f354a 100644
--- a/samples/cmdline/moderator.py
+++ b/samples/cmdline/moderator.py
@@ -27,7 +27,7 @@
   http = credentials.authorize(http)
 
   p = build("moderator", "v1", http=http)
-  print p.submissions().list(seriesId="7035", topicId="64")
+  print p.submissions().list(seriesId="7035", topicId="64").execute()
 
 if __name__ == '__main__':
   main()
