diff --git a/apiclient/contrib/buzz/future.json b/apiclient/contrib/buzz/future.json
index 88abf31..ed6f0f9 100644
--- a/apiclient/contrib/buzz/future.json
+++ b/apiclient/contrib/buzz/future.json
@@ -112,7 +112,12 @@
             "methods": {
               "delete": {}, 
               "get": {}, 
-              "liked": {}, 
+              "liked": {
+                "next": {
+                  "type": "uri",
+                  "location": ["links", "next", 0, "href"]
+                }
+              },
               "list": {}, 
               "relatedToUri": {}, 
               "reshared": {}, 
diff --git a/buzz_gae_client.py b/buzz_gae_client.py
index 544655e..ffc74c3 100644
--- a/buzz_gae_client.py
+++ b/buzz_gae_client.py
@@ -36,6 +36,7 @@
 AUTHORIZE_URL = 'https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?domain=anonymous&scope=https://www.googleapis.com/auth/buzz'
 ACCESS_TOKEN_URL = 'https://www.google.com/accounts/OAuthGetAccessToken'
 
+# TODO(ade) This class is really a BuzzGaeBuilder. Rename it.
 class BuzzGaeClient(object):
   def __init__(self, consumer_key='anonymous', consumer_secret='anonymous'):
     self.consumer = oauth.Consumer(consumer_key, consumer_secret)
diff --git a/functional_tests/test_services.py b/functional_tests/test_services.py
index faab6cf..7cf5a5d 100644
--- a/functional_tests/test_services.py
+++ b/functional_tests/test_services.py
@@ -9,13 +9,29 @@
 These tests are read-only in order to ensure they're repeatable. They also
 only work with publicly visible data in order to avoid dealing with OAuth.
 """
+import httplib2
 
 __author__ = 'ade@google.com (Ade Oshineye)'
 
 from apiclient.discovery import build
+import httplib2
 import logging
+import os
 import unittest
 
+# TODO(ade) Remove this mock once the bug in the discovery document is fixed
+DATA_DIR = os.path.join(logging.os.path.dirname(__file__), '../tests/data')
+class HttpMock(object):
+
+  def __init__(self, filename, headers):
+    f = file(os.path.join(DATA_DIR, filename), 'r')
+    self.data = f.read()
+    f.close()
+    self.headers = headers
+
+  def request(self, uri, method="GET", body=None, headers=None, redirections=1, connection_type=None):
+    return httplib2.Response(self.headers), self.data
+
 class BuzzFunctionalTest(unittest.TestCase):
   def test_can_get_buzz_activities_with_many_params(self):
     buzz = build('buzz', 'v1')
@@ -31,7 +47,7 @@
     activity_count = len(activities['items'])
     self.assertEquals(max_results, activity_count)
 
-  def test_can_page_through_users_activities(self):
+  def test_can_get_multiple_pages_of_buzz_activities(self):
     buzz = build('buzz', 'v1')
     max_results = 2
     actcol = buzz.activities()
@@ -43,5 +59,21 @@
       activity_count = len(activities['items'])
       self.assertEquals(max_results, activity_count, 'Failed after %s pages' % str(count))
 
+  def IGNORE__test_can_get_multiple_pages_of_buzz_likers(self):
+    # Ignore this test until the Buzz API fixes the bug with next links
+    # http://code.google.com/p/google-buzz-api/issues/detail?id=114
+    self.http = HttpMock('buzz.json', {'status': '200'})
+    buzz = build('buzz', 'v1', self.http)
+    max_results = 1
+    people_cmd = buzz.people()
+    #https://www.googleapis.com/buzz/v1/activities/111062888259659218284/@self/B:z13nh535yk2syfob004cdjyb3mjeulcwv3c?alt=json#
+    people = people_cmd.liked(groupId='@liked', userId='googlebuzz', scope='@self',
+                              postId='B:z13nh535yk2syfob004cdjyb3mjeulcwv3c', max_results=max_results).execute()
+
+    for count in range(10):
+      people = people_cmd.liked_next(people).execute()
+      people_count = len(people['items'])
+      self.assertEquals(max_results, people_count, 'Failed after %s pages' % str(count))
+
 if __name__ == '__main__':
   unittest.main()
diff --git a/tests/data/buzz.json b/tests/data/buzz.json
index f12a445..62af35c 100644
--- a/tests/data/buzz.json
+++ b/tests/data/buzz.json
@@ -621,7 +621,7 @@
        "liked": {
         "pathUrl": "buzz/v1/activities/{userId}/{scope}/{postId}/{groupId}",
         "rpcName": "buzz.people.liked",
-        "httpMethod": "POST",
+        "httpMethod": "GET",
         "methodType": "rest",
         "parameters": {
          "groupId": {
@@ -646,6 +646,11 @@
           "pattern": "[^/]+",
           "required": true
          },
+         "scope": {
+          "parameterType": "path",
+          "pattern": "@.*",
+          "required": true
+         },
          "postId": {
           "parameterType": "path",
           "pattern": ".*",
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index c44f1e4..374e57c 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -100,7 +100,7 @@
 
 
 class Next(unittest.TestCase):
-  def test_next(self):
+  def test_next_for_activities_list(self):
     self.http = HttpMock('buzz.json', {'status': '200'})
     buzz = build('buzz', 'v1', self.http)
     activities = {'links':
@@ -109,6 +109,14 @@
     request = buzz.activities().list_next(activities)
     self.assertEqual(request.uri, 'http://www.googleapis.com/next-link')
 
+  def test_next_for_people_liked(self):
+    self.http = HttpMock('buzz.json', {'status': '200'})
+    buzz = build('buzz', 'v1', self.http)
+    people = {'links':
+                  {'next':
+                   [{'href': 'http://www.googleapis.com/next-link'}]}}
+    request = buzz.people().liked_next(people)
+    self.assertEqual(request.uri, 'http://www.googleapis.com/next-link')
 
 if __name__ == '__main__':
   unittest.main()
