diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index 4749fea..9956e23 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/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;
 }
