diff --git a/DEPS b/DEPS
index d1f153244917f..52b0fff1b6329 100644
--- a/DEPS
+++ b/DEPS
@@ -379,7 +379,7 @@ vars = {
   # revisions.
 
   # GN CIPD package version.
-  'gn_version': 'git_revision:f5f465b52e5df6d4de9fbe67cc79f1914ba4dbfc',
+  'gn_version': 'git_revision:e002e68a48d1c82648eadde2f6aafa20d08c36f2',
 
   # Also, if you change these, update buildtools/DEPS too. Also update the
   # libc++ svn_revision in //buildtools/deps_revisions.gni.
diff --git a/buildtools/DEPS b/buildtools/DEPS
index 2f8cb26a712fe..7e5e9baaccf07 100644
--- a/buildtools/DEPS
+++ b/buildtools/DEPS
@@ -14,7 +14,7 @@ vars = {
   #
 
   # GN CIPD package version.
-  'gn_version': 'git_revision:f5f465b52e5df6d4de9fbe67cc79f1914ba4dbfc',
+  'gn_version': 'git_revision:e002e68a48d1c82648eadde2f6aafa20d08c36f2',
 
   # When changing these, also update the svn revisions in deps_revisions.gni
   'clang_format_revision': '96636aa0e9f047f17447f2d45a094d0b59ed7917',
diff --git a/tools/mb/mb.py b/tools/mb/mb.py
index 8605d734b670f..c1f78f1cf8aca 100755
--- a/tools/mb/mb.py
+++ b/tools/mb/mb.py
@@ -1192,7 +1192,7 @@ class MetaBuildWrapper(object):
     for target in ninja_targets:
       target_type = isolate_map[target]['type']
       label = isolate_map[target]['label']
-      runtime_deps = 'obj/%s.runtime_deps' % label.replace(':', '/')
+      stamp_runtime_deps = 'obj/%s.stamp.runtime_deps' % label.replace(':', '/')
       # TODO(https://crbug.com/876065): 'official_tests' use
       # type='additional_compile_target' to isolate tests. This is not the
       # intended use for 'additional_compile_target'.
@@ -1205,21 +1205,23 @@ class MetaBuildWrapper(object):
       elif fuchsia or ios or target_type == 'generated_script':
         # iOS and Fuchsia targets end up as groups.
         # generated_script targets are always actions.
-        rpaths = [runtime_deps]
+        rpaths = [stamp_runtime_deps]
       elif android:
         # Android targets may be either android_apk or executable. The former
-        # will result in runtime_deps associated with the target, while the
+        # will result in runtime_deps associated with the stamp file, while the
         # latter will result in runtime_deps associated with the executable.
         label = isolate_map[target]['label']
-        rpaths = [target + '.runtime_deps', runtime_deps]
+        rpaths = [
+            target + '.runtime_deps',
+            stamp_runtime_deps]
       elif (target_type == 'script'
             or isolate_map[target].get('label_type') == 'group'):
         # For script targets, the build target is usually a group,
-        # for which gn generates the runtime_deps in the build directory
+        # for which gn generates the runtime_deps next to the stamp file
         # for the label, which lives under the obj/ directory, but it may
         # also be an executable.
         label = isolate_map[target]['label']
-        rpaths = [runtime_deps]
+        rpaths = [stamp_runtime_deps]
         if win:
           rpaths += [ target + '.exe.runtime_deps' ]
         else: