diff --git a/src/gn/compile_commands_writer.cc b/src/gn/compile_commands_writer.cc
index 2ec76a8..f5f55f9 100644
--- a/src/gn/compile_commands_writer.cc
+++ b/src/gn/compile_commands_writer.cc
@@ -106,16 +106,14 @@
   if (!module_dep_info.empty()) {
     std::ostringstream module_deps_out;
     for (const auto& module_dep : module_dep_info) {
-      module_dep.Write(module_deps_out, path_output);
+      module_dep.Write(module_deps_out, path_output, true);
     }
     base::EscapeJSONString(module_deps_out.str(), false,
                            &flags.clang_module_deps);
 
     std::ostringstream module_deps_no_self_out;
     for (const auto& module_dep : module_dep_info) {
-      if (!module_dep.is_self) {
-        module_dep.Write(module_deps_no_self_out, path_output);
-      }
+      module_dep.Write(module_deps_no_self_out, path_output, false);
     }
     base::EscapeJSONString(module_deps_no_self_out.str(), false,
                            &flags.clang_module_deps_no_self);
diff --git a/src/gn/compile_commands_writer_unittest.cc b/src/gn/compile_commands_writer_unittest.cc
index 0011f84..8069d0f 100644
--- a/src/gn/compile_commands_writer_unittest.cc
+++ b/src/gn/compile_commands_writer_unittest.cc
@@ -671,7 +671,8 @@
       "  {\r\n"
       "    \"file\": \"../../foo/foo.modulemap\",\r\n"
       "    \"directory\": \"out/Debug\",\r\n"
-      "    \"command\": \"c++ ../../foo/foo.modulemap      "
+      "    \"command\": \"c++ ../../foo/foo.modulemap    "
+      "-fmodule-map-file=../../foo/foo.modulemap   "
       "-fmodule-name=//foo:module(//toolchain:withmodules) -c -x c++ -Xclang "
       "-emit-module -o  "
       "withmodules/obj/foo/module.foo.pcm\"\r\n"
@@ -692,7 +693,8 @@
       "  {\n"
       "    \"file\": \"../../foo/foo.modulemap\",\n"
       "    \"directory\": \"out/Debug\",\n"
-      "    \"command\": \"c++ ../../foo/foo.modulemap      "
+      "    \"command\": \"c++ ../../foo/foo.modulemap    "
+      "-fmodule-map-file=../../foo/foo.modulemap   "
       "-fmodule-name=//foo:module(//toolchain:withmodules) -c -x c++ -Xclang "
       "-emit-module -o  "
       "withmodules/obj/foo/module.foo.pcm\"\n"
diff --git a/src/gn/ninja_c_binary_target_writer.cc b/src/gn/ninja_c_binary_target_writer.cc
index 64f4ee9..9a9e834 100644
--- a/src/gn/ninja_c_binary_target_writer.cc
+++ b/src/gn/ninja_c_binary_target_writer.cc
@@ -212,9 +212,7 @@
 
     out_ << substitution->ninja_name << " =";
     for (const auto& module_dep : module_dep_info) {
-      if (!module_dep.is_self || include_self) {
-        module_dep.Write(out_, path_output_);
-      }
+      module_dep.Write(out_, path_output_, include_self);
     }
 
     out_ << std::endl;
diff --git a/src/gn/ninja_c_binary_target_writer_unittest.cc b/src/gn/ninja_c_binary_target_writer_unittest.cc
index dae7692..ccda8f9 100644
--- a/src/gn/ninja_c_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_c_binary_target_writer_unittest.cc
@@ -2590,7 +2590,7 @@
 cflags_cc =
 cc_module_name = blah_a
 module_deps = -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
-module_deps_no_self =
+module_deps_no_self = -fmodule-map-file=../../blah/a.modulemap
 root_out_dir = withmodules
 target_out_dir = obj/blah
 target_output_name = liba
@@ -2639,7 +2639,7 @@
 cflags_cc =
 cc_module_name = //stuff$:b(//toolchain$:default)
 module_deps = -fmodule-map-file=../../stuff/b.modulemap -fmodule-file=//stuff:b(//toolchain:default)=obj/stuff/libb.b.pcm -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
-module_deps_no_self = -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
+module_deps_no_self = -fmodule-map-file=../../stuff/b.modulemap -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
 root_out_dir = withmodules
 target_out_dir = obj/stuff
 target_output_name = libb
@@ -2686,7 +2686,7 @@
 cflags_cc =
 cc_module_name = //things$:c
 module_deps = -fmodule-map-file=../../stuff/b.modulemap -fmodule-file=//stuff:b(//toolchain:default)=obj/stuff/libb.b.pcm -fmodule-map-file=../../stuff/c.modulemap -fmodule-file=//things:c=obj/stuff/libc.c.pcm -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
-module_deps_no_self = -fmodule-map-file=../../stuff/b.modulemap -fmodule-file=//stuff:b(//toolchain:default)=obj/stuff/libb.b.pcm -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
+module_deps_no_self = -fmodule-map-file=../../stuff/b.modulemap -fmodule-file=//stuff:b(//toolchain:default)=obj/stuff/libb.b.pcm -fmodule-map-file=../../stuff/c.modulemap -fmodule-map-file=../../blah/a.modulemap -fmodule-file=blah_a=obj/blah/liba.a.pcm
 root_out_dir = withmodules
 target_out_dir = obj/things
 target_output_name = libc
diff --git a/src/gn/ninja_module_writer_util.cc b/src/gn/ninja_module_writer_util.cc
index 7c8b0ca..3fc6a2e 100644
--- a/src/gn/ninja_module_writer_util.cc
+++ b/src/gn/ninja_module_writer_util.cc
@@ -80,12 +80,12 @@
 }
 
 void ClangModuleDep::Write(std::ostream& out,
-                           const PathOutput& path_output) const {
+                           const PathOutput& path_output, bool include_self) const {
   if (modulemap) {
     out << " -fmodule-map-file=";
     path_output.WriteFile(out, *modulemap);
   }
-  if (pcm) {
+  if (pcm && (include_self || !is_self)) {
     out << " -fmodule-file=" << module_name << "=";
     path_output.WriteFile(out, *pcm);
   }
diff --git a/src/gn/ninja_module_writer_util.h b/src/gn/ninja_module_writer_util.h
index 911a98f..8239ac8 100644
--- a/src/gn/ninja_module_writer_util.h
+++ b/src/gn/ninja_module_writer_util.h
@@ -25,7 +25,7 @@
 
   std::strong_ordering operator<=>(const ClangModuleDep& other) const;
   bool operator==(const ClangModuleDep& other) const = default;
-  void Write(std::ostream& out, const PathOutput& path_output) const;
+  void Write(std::ostream& out, const PathOutput& path_output, bool include_self) const;
 
   // The input module.modulemap source file.
   const SourceFile* modulemap;
