diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 303f415..cf9a196 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -312,13 +312,16 @@
       x, white_list=(r'\.(?:c|cc|cpp|h)$',))
 
   results = []
-  results += _CheckUnwantedDependencies(input_api, output_api)
-  results += input_api.canned_checks.CheckPatchFormatted(input_api, output_api)
-  results += input_api.canned_checks.CheckChangeLintsClean(
-      input_api, output_api, cpp_source_filter, LINT_FILTERS)
-  results += _CheckIncludeOrder(input_api, output_api)
-  results += _CheckTestDuplicates(input_api, output_api)
-  results += _CheckPNGFormat(input_api, output_api)
+  results.extend(_CheckUnwantedDependencies(input_api, output_api))
+  results.extend(
+      input_api.canned_checks.CheckPatchFormatted(input_api, output_api))
+  results.extend(
+      input_api.canned_checks.CheckChangeLintsClean(input_api, output_api,
+                                                    cpp_source_filter,
+                                                    LINT_FILTERS))
+  results.extend(_CheckIncludeOrder(input_api, output_api))
+  results.extend(_CheckTestDuplicates(input_api, output_api))
+  results.extend(_CheckPNGFormat(input_api, output_api))
 
   for f in input_api.AffectedFiles():
     path, name = input_api.os_path.split(f.LocalPath())
diff --git a/fpdfsdk/PRESUBMIT.py b/fpdfsdk/PRESUBMIT.py
index 17f7c6a..dee2035 100644
--- a/fpdfsdk/PRESUBMIT.py
+++ b/fpdfsdk/PRESUBMIT.py
@@ -32,11 +32,11 @@
 
 def CheckChangeOnUpload(input_api, output_api):
   results = []
-  results += _CheckApiTestFile(input_api, output_api)
+  results.extend(_CheckApiTestFile(input_api, output_api))
   return results
 
 
 def CheckChangeOnCommit(input_api, output_api):
   results = []
-  results += _CheckApiTestFile(input_api, output_api)
+  results.extend(_CheckApiTestFile(input_api, output_api))
   return results
diff --git a/public/PRESUBMIT.py b/public/PRESUBMIT.py
index 5081823..6138c4a 100644
--- a/public/PRESUBMIT.py
+++ b/public/PRESUBMIT.py
@@ -24,11 +24,11 @@
 
 def CheckChangeOnUpload(input_api, output_api):
   results = []
-  results += _CheckPublicHeaders(input_api, output_api)
+  results.extend(_CheckPublicHeaders(input_api, output_api))
   return results
 
 
 def CheckChangeOnCommit(input_api, output_api):
   results = []
-  results += _CheckPublicHeaders(input_api, output_api)
+  results.extend(_CheckPublicHeaders(input_api, output_api))
   return results
