diff --git a/src/gn/ninja_c_binary_target_writer.cc b/src/gn/ninja_c_binary_target_writer.cc
index ddff182..b52475f 100644
--- a/src/gn/ninja_c_binary_target_writer.cc
+++ b/src/gn/ninja_c_binary_target_writer.cc
@@ -861,7 +861,10 @@
     return;
 
   out_ << "  " << label << " =";
-  path_output_.WriteFiles(out_, libs);
+  PathOutput output(path_output_.current_dir(),
+                    settings_->build_settings()->root_path_utf8(),
+                    ESCAPE_NINJA_COMMAND);
+  output.WriteFiles(out_, libs);
   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 35d9841..ef40173 100644
--- a/src/gn/ninja_c_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_c_binary_target_writer_unittest.cc
@@ -1920,3 +1920,59 @@
     EXPECT_EQ(expected, out_str) << expected << "\n" << out_str;
   }
 }
+
+TEST_F(NinjaCBinaryTargetWriterTest, SolibsEscaping) {
+  Err err;
+  TestWithScope setup;
+
+  Toolchain toolchain_with_toc(
+      setup.settings(), Label(SourceDir("//toolchain_with_toc/"), "with_toc"));
+  TestWithScope::SetupToolchain(&toolchain_with_toc, true);
+
+  // Create a shared library with a space in the output name.
+  Target shared_lib(setup.settings(),
+                    Label(SourceDir("//rocket"), "space_cadet"));
+  shared_lib.set_output_type(Target::SHARED_LIBRARY);
+  shared_lib.set_output_name("Space Cadet");
+  shared_lib.set_output_prefix_override("");
+  shared_lib.SetToolchain(&toolchain_with_toc);
+  shared_lib.visibility().SetPublic();
+  ASSERT_TRUE(shared_lib.OnResolved(&err));
+
+  // Set up an executable to depend on it.
+  Target target(setup.settings(), Label(SourceDir("//launchpad"), "main"));
+  target.sources().push_back(SourceFile("//launchpad/main.cc"));
+  target.set_output_type(Target::EXECUTABLE);
+  target.private_deps().push_back(LabelTargetPair(&shared_lib));
+  target.SetToolchain(&toolchain_with_toc);
+  ASSERT_TRUE(target.OnResolved(&err));
+
+  std::ostringstream out;
+  NinjaCBinaryTargetWriter writer(&target, out);
+  writer.Run();
+
+  const char expected[] = R"(defines =
+include_dirs =
+root_out_dir = .
+target_out_dir = obj/launchpad
+target_output_name = main
+
+build obj/launchpad/main.main.o: cxx ../../launchpad/main.cc
+
+build ./main: link obj/launchpad/main.main.o | ./Space$ Cadet.so.TOC
+  ldflags =
+  libs =
+  frameworks =
+  swiftmodules =
+  output_extension = 
+  output_dir = 
+)"
+#if defined(OS_WIN)
+  "  solibs = \"./Space$ Cadet.so\"\n";
+#else
+  "  solibs = ./Space\\$ Cadet.so\n";
+#endif
+
+  std::string out_str = out.str();
+  EXPECT_EQ(expected, out_str) << expected << "\n" << out_str;
+}
