diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 84227ae..cf83530 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -208,7 +208,7 @@
 
 def build_from_document(
     service,
-    base,
+    base=None,
     future=None,
     http=None,
     developerKey=None,
@@ -222,6 +222,8 @@
   Args:
     service: string, discovery document.
     base: string, base URI for all HTTP requests, usually the discovery URI.
+      This parameter is no longer used as rootUrl and servicePath are included
+      within the discovery document. (deprecated)
     future: string, discovery document with future capabilities (deprecated).
     http: httplib2.Http, An instance of httplib2.Http or something that acts
       like it that HTTP requests will be made through.
@@ -239,7 +241,7 @@
   future = {}
 
   service = simplejson.loads(service)
-  base = urlparse.urljoin(base, service['basePath'])
+  base = urlparse.urljoin(service['rootUrl'], service['servicePath'])
   schema = Schemas(service)
 
   if model is None:
@@ -363,10 +365,8 @@
     maxSize = 0
     if 'mediaUpload' in methodDesc:
       mediaUpload = methodDesc['mediaUpload']
-      # TODO(jcgregorio) Use URLs from discovery once it is updated.
-      parsed = list(urlparse.urlparse(baseUrl))
-      basePath = parsed[2]
-      mediaPathUrl = '/upload' + basePath + pathUrl
+      mediaPathUrl = (rootDesc['rootUrl'] + 'upload/' + rootDesc['servicePath']
+                      + pathUrl)
       accept = mediaUpload['accept']
       maxSize = _media_size_to_long(mediaUpload.get('maxSize', ''))
 
diff --git a/tests/data/latitude.json b/tests/data/latitude.json
index 99967ef..7717f90 100644
--- a/tests/data/latitude.json
+++ b/tests/data/latitude.json
@@ -13,6 +13,8 @@
  ],
  "protocol": "rest",
  "basePath": "/latitude/v1/",
+ "rootUrl": "https://www.googleapis.com/",
+ "servicePath": "latitude/v1/",
  "auth": {
   "oauth2": {
    "scopes": {
diff --git a/tests/data/plus.json b/tests/data/plus.json
index fdcd30c..36d3ae9 100644
--- a/tests/data/plus.json
+++ b/tests/data/plus.json
@@ -15,6 +15,8 @@
  ],
  "protocol": "rest",
  "basePath": "/plus/v1/",
+ "rootUrl": "https://www.googleapis.com/",
+ "servicePath": "plus/v1/",
  "parameters": {
   "alt": {
    "type": "string",
diff --git a/tests/data/tasks.json b/tests/data/tasks.json
index ed3d61f..ee7be10 100644
--- a/tests/data/tasks.json
+++ b/tests/data/tasks.json
@@ -15,6 +15,8 @@
  ],
  "protocol": "rest",
  "basePath": "/tasks/v1/",
+ "rootUrl": "https://www.googleapis.com/",
+ "servicePath": "tasks/v1/",
  "parameters": {
   "alt": {
    "type": "string",
diff --git a/tests/data/zoo.json b/tests/data/zoo.json
index 0df7f7b..4c23584 100644
--- a/tests/data/zoo.json
+++ b/tests/data/zoo.json
@@ -4,6 +4,8 @@
  "version": "v1",
  "description": "Zoo API used for Apiary testing",
  "basePath": "/zoo/",
+ "rootUrl": "https://www.googleapis.com/",
+ "servicePath": "zoo/v1/",
  "rpcPath": "/rpc",
  "parameters": {
   "alt": {
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index bec272c..b1656c4 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -85,7 +85,7 @@
 
     base = "https://www.example.com/"
     plus = build_from_document(discovery, base=base)
-    self.assertEquals(base + "plus/v1/", plus._baseUrl)
+    self.assertEquals("https://www.googleapis.com/plus/v1/", plus._baseUrl)
 
 
 class DiscoveryFromHttp(unittest.TestCase):
@@ -282,7 +282,7 @@
     self.assertTrue(getattr(zoo, 'animals'))
     request = zoo.global_().print_().assert_(max_results="5")
     parsed = urlparse.urlparse(request.uri)
-    self.assertEqual(parsed[2], '/zoo/global/print/assert')
+    self.assertEqual(parsed[2], '/zoo/v1/global/print/assert')
 
   def test_top_level_functions(self):
     self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
@@ -330,7 +330,7 @@
     self.assertEquals('image/png', request.headers['content-type'])
     self.assertEquals('PNG', request.body[1:4])
     self.assertEqual(
-        'https://www.googleapis.com/upload/zoo/animals?uploadType=media&alt=json',
+        'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=media&alt=json',
         request.uri)
 
   def test_multipart_media_raise_correct_exceptions(self):
@@ -358,7 +358,7 @@
         'multipart/related'))
     self.assertEquals('--==', request.body[0:4])
     self.assertEqual(
-        'https://www.googleapis.com/upload/zoo/animals?uploadType=multipart&alt=json',
+        'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=multipart&alt=json',
         request.uri)
 
   def test_media_capable_method_without_media(self):
@@ -476,7 +476,7 @@
     media_upload = MediaFileUpload(datafile('small.png'), resumable=True)
     request = zoo.animals().insert(media_body=media_upload, body=None)
     self.assertEqual(
-        'https://www.googleapis.com/upload/zoo/animals?uploadType=resumable&alt=json',
+        'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=resumable&alt=json',
         request.uri)
 
     http = HttpMockSequence([
