diff --git a/Distribution/Simple/Program.hs b/Distribution/Simple/Program.hs
index 48165391a5ff281f634e634af3044d9757f5e0af..f28976ffbb7ef66e4dd0e116e6c252b1c9893627 100644
--- a/Distribution/Simple/Program.hs
+++ b/Distribution/Simple/Program.hs
@@ -93,6 +93,7 @@ import Distribution.Version (Version(..), readVersion, showVersion,
 import Distribution.Verbosity
 import System.Directory (doesFileExist, removeFile)
 import System.FilePath  (dropExtension)
+import System.IO.Error (try)
 import Control.Monad (join, foldM)
 import Control.Exception as Exception (catch)
 
@@ -564,7 +565,7 @@ hsc2hsProgram = (simpleProgram "hsc2hs") {
           withTempFile "." "hsc" $ \hsc -> do
 	    writeFile hsc ""
 	    (str, _) <- rawSystemStdout' verbosity path [hsc, "--cflag=--version"]
-	    removeFile (dropExtension hsc ++ "_hsc_make.c")
+	    try $ removeFile (dropExtension hsc ++ "_hsc_make.c")
 	    case words str of
 	      (_:"Glorious":"Glasgow":"Haskell":_)
 	        -> return $ Just version { versionTags = ["ghc"] }