diff --git a/llvm/tools/llvm-ld/llvm-ld.cpp b/llvm/tools/llvm-ld/llvm-ld.cpp
index 4749fea..9956e23 100644
--- a/llvm/tools/llvm-ld/llvm-ld.cpp
+++ b/llvm/tools/llvm-ld/llvm-ld.cpp
@@ -30,7 +30,6 @@
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileUtilities.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/PrettyStackTrace.h"
@@ -125,10 +124,6 @@
 /// everywhere.
 static std::string progname;
 
-/// FileRemover objects to clean up output files in the event of an error.
-static FileRemover OutputRemover;
-static FileRemover BitcodeOutputRemover;
-
 /// PrintAndExit - Prints a message to standard error and exits with error code
 ///
 /// Inputs:
@@ -241,6 +236,10 @@
   if (!ErrorInfo.empty())
     PrintAndExit(ErrorInfo, M);
 
+  // Ensure that the bitcode file gets removed from the disk if we get a
+  // terminating signal.
+  sys::RemoveFileOnSignal(sys::Path(FileName));
+
   // Write it out
   WriteBitcodeToFile(M, Out);
 }
@@ -583,17 +582,8 @@
     if (!LinkAsLibrary) BitcodeOutputFilename += ".bc";
   }
 
-  // Arrange for the bitcode output file to be deleted on any errors.
-  BitcodeOutputRemover = FileRemover(sys::Path(BitcodeOutputFilename));
-  sys::RemoveFileOnSignal(sys::Path(BitcodeOutputFilename));
-
-  // Generate the bitcode output.
   GenerateBitcode(Composite.get(), BitcodeOutputFilename);
 
-  // Arrange for the output file to be deleted on any errors.
-  OutputRemover = FileRemover(sys::Path(OutputFilename));
-  sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
   // If we are not linking a library, generate either a native executable
   // or a JIT shell script, depending upon what the user wants.
   if (!LinkAsLibrary) {
@@ -646,6 +636,7 @@
 
       // Mark the output files for removal if we get an interrupt.
       sys::RemoveFileOnSignal(AssemblyFile);
+      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
 
       // Determine the locations of the llc and gcc programs.
       sys::Path llc = FindExecutable("llc", argv[0],
@@ -675,6 +666,7 @@
 
       // Mark the output files for removal if we get an interrupt.
       sys::RemoveFileOnSignal(CFile);
+      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
 
       // Determine the locations of the llc and gcc programs.
       sys::Path llc = FindExecutable("llc", argv[0],
@@ -715,10 +707,6 @@
       PrintAndExit(ErrMsg, Composite.get());
   }
 
-  // Operations which may fail are now complete.
-  OutputRemover.releaseFile();
-  BitcodeOutputRemover.releaseFile();
-
   // Graceful exit
   return 0;
 }
