Using `six.raise_from` wherever possible.
diff --git a/google/oauth2/_client.py b/google/oauth2/_client.py
index 468cb7e..66251df 100644
--- a/google/oauth2/_client.py
+++ b/google/oauth2/_client.py
@@ -26,6 +26,7 @@
 import datetime
 import json
 
+import six
 from six.moves import http_client
 from six.moves import urllib
 
@@ -144,9 +145,10 @@
 
     try:
         access_token = response_data['access_token']
-    except KeyError:
-        raise exceptions.RefreshError(
+    except KeyError as caught_exc:
+        new_exc = exceptions.RefreshError(
             'No access token in response.', response_data)
+        six.raise_from(new_exc, caught_exc)
 
     expiry = _parse_expiry(response_data)
 
@@ -190,9 +192,10 @@
 
     try:
         access_token = response_data['access_token']
-    except KeyError:
-        raise exceptions.RefreshError(
+    except KeyError as caught_exc:
+        new_exc = exceptions.RefreshError(
             'No access token in response.', response_data)
+        six.raise_from(new_exc, caught_exc)
 
     refresh_token = response_data.get('refresh_token', refresh_token)
     expiry = _parse_expiry(response_data)