imported patch reserved
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 6f0f752..2965f3c 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -58,6 +58,16 @@
 STACK_QUERY_PARAMETERS = ['trace', 'fields', 'pp', 'prettyPrint', 'userIp',
   'userip', 'strict']
 
+RESERVED_WORDS = [ 'and', 'assert', 'break', 'class', 'continue', 'def', 'del',
+                  'elif', 'else', 'except', 'exec', 'finally', 'for', 'from',
+                  'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or',
+                  'pass', 'print', 'raise', 'return', 'try', 'while' ]
+
+def _fix_method_name(name):
+  if name in RESERVED_WORDS:
+    return name + '_'
+  else:
+    return name
 
 def _write_headers(self):
   # Utility no-op method for multipart media handling
@@ -260,6 +270,7 @@
       self._requestBuilder = requestBuilder
 
   def createMethod(theclass, methodName, methodDesc, futureDesc):
+    methodName = _fix_method_name(methodName)
     pathUrl = methodDesc['path']
     httpMethod = methodDesc['httpMethod']
     methodId = methodDesc['id']
@@ -463,6 +474,7 @@
     setattr(theclass, methodName, method)
 
   def createNextMethod(theclass, methodName, methodDesc, futureDesc):
+    methodName = _fix_method_name(methodName)
     methodId = methodDesc['id'] + '.next'
 
     def methodNext(self, previous):
@@ -520,6 +532,7 @@
   if 'resources' in resourceDesc:
 
     def createResourceMethod(theclass, methodName, methodDesc, futureDesc):
+      methodName = _fix_method_name(methodName)
 
       def methodResource(self):
         return createResource(self._http, self._baseUrl, self._model,