diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index c0ee9217e8..bf7737d6fa 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -1489,6 +1489,12 @@
       LinkerDriver = Args.MakeArgString(tool.get());
   }
 
+  // For Nix, prefer linking using the wrapped Nixpkgs clang, instead of using
+  // the unwrapped clang packaged with swift. The latter is unable to link, but
+  // we still want to use it for other purposes (clang importer).
+  if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {"@clang@/bin"}))
+    return Args.MakeArgString(tool.get());
+
   return LinkerDriver;
 }
 
