diff --git a/ghc/lib/std/PrelMain.lhs b/ghc/lib/std/PrelMain.lhs
index 4581ea3623f859916e7721ee3a8677cb15067b04..05aae478149fe51934b30c34cd5e95e45aaaf967 100644
--- a/ghc/lib/std/PrelMain.lhs
+++ b/ghc/lib/std/PrelMain.lhs
@@ -35,10 +35,7 @@ real_handler :: Exception -> IO ()
 real_handler ex =
   case ex of
 	ErrorCall s -> reportError s
-	other       -> hPutStr stderr (showsPrec 0 other "\n") >>
-		       _ccall_ stg_exit (1::Int)
-
--- calls to 'error' are treated slightly differently...
+	other       -> reportError (showsPrec 0 other "\n")
 
 reportError :: String -> IO ()
 reportError str = do