diff --git a/src/gn/target.cc b/src/gn/target.cc
index 44c5f14..66ffc1f 100644
--- a/src/gn/target.cc
+++ b/src/gn/target.cc
@@ -810,10 +810,12 @@
     case GENERATED_FILE: {
       // These don't get linked to and use stamps which should be the first
       // entry in the outputs. These stamps are named
-      // "<target_out_dir>/<targetname>.stamp".
+      // "<target_out_dir>/<targetname>.stamp". Setting "output_name" does not
+      // affect the stamp file name: it is always based on the original target
+      // name.
       dependency_output_file_ =
           GetBuildDirForTargetAsOutputFile(this, BuildDirType::OBJ);
-      dependency_output_file_.value().append(GetComputedOutputName());
+      dependency_output_file_.value().append(label().name());
       dependency_output_file_.value().append(".stamp");
       break;
     }
diff --git a/src/gn/target_unittest.cc b/src/gn/target_unittest.cc
index 311cbf9..add6d82 100644
--- a/src/gn/target_unittest.cc
+++ b/src/gn/target_unittest.cc
@@ -874,6 +874,36 @@
   EXPECT_EQ("//out/Debug/obj/a/a.stamp", computed_outputs[0].value());
 }
 
+TEST_F(TargetTest, CheckStampFileName) {
+  TestWithScope setup;
+
+  Toolchain toolchain(setup.settings(), Label(SourceDir("//tc/"), "tc"));
+
+  std::unique_ptr<Tool> tool = Tool::CreateTool(CTool::kCToolCxx);
+  CTool* cxx = tool->AsC();
+  cxx->set_outputs(SubstitutionList::MakeForTest("{{source_file_part}}.o"));
+  toolchain.SetTool(std::move(tool));
+
+  Target target(setup.settings(), Label(SourceDir("//a/"), "a"));
+  target.set_output_type(Target::SOURCE_SET);
+  target.SetToolchain(&toolchain);
+
+  // Change the output artifact name on purpose.
+  target.set_output_name("b");
+
+  Err err;
+  ASSERT_TRUE(target.OnResolved(&err));
+
+  // Test GetOutputsAsSourceFiles(). Since this is a source set it should give a
+  // stamp file.
+  std::vector<SourceFile> computed_outputs;
+  EXPECT_TRUE(target.GetOutputsAsSourceFiles(LocationRange(), true,
+                                             &computed_outputs, &err));
+  ASSERT_EQ(1u, computed_outputs.size());
+  EXPECT_EQ("//out/Debug/obj/a/a.stamp", computed_outputs[0].value())
+    << "was instead: " << computed_outputs[0].value();
+}
+
 // Tests Target::GetOutputFilesForSource for action_foreach targets (these, like
 // copy targets, apply a pattern to the source file). Also tests
 // GetOutputsAsSourceFiles() for action_foreach().
