diff --git a/ghc/utils/unlit/unlit.c b/ghc/utils/unlit/unlit.c
index b15e56829b8a66903c48b17e16d4db22243697b2..27688c71d9bc21bd500a568a8438020694d0e24a 100644
--- a/ghc/utils/unlit/unlit.c
+++ b/ghc/utils/unlit/unlit.c
@@ -338,8 +338,8 @@ char **argv; {
 
     unlit(file, istream, ostream);
 
-    fclose(istream);
-    fclose(ostream);
+    if (istream != stdin)  fclose(istream);
+    if (ostream != stdout) fclose(ostream);
 
     exit(errors==0 ? 0 : 1);
 }