diff --git a/ghc/compiler/main/CmdLineOpts.lhs b/ghc/compiler/main/CmdLineOpts.lhs
index c9278fe78b872681092f4fe4915ade6988729bee..0f12e51a6158518a0e317bdcb71706e4200bfac3 100644
--- a/ghc/compiler/main/CmdLineOpts.lhs
+++ b/ghc/compiler/main/CmdLineOpts.lhs
@@ -37,6 +37,7 @@ module CmdLineOpts (
 	opt_D_dump_tc,
 	opt_D_show_passes,
 	opt_D_show_rn_trace,
+	opt_D_show_rn_imports,
 	opt_D_simplifier_stats,
 	opt_D_source_stats,
 	opt_D_verbose_core2core,
@@ -290,6 +291,7 @@ opt_D_dump_stranal		= lookUp  SLIT("-ddump-stranal")
 opt_D_dump_tc			= lookUp  SLIT("-ddump-tc")
 opt_D_show_passes		= lookUp  SLIT("-dshow-passes")
 opt_D_show_rn_trace		= lookUp  SLIT("-dshow-rn-trace")
+opt_D_show_rn_imports		= lookUp  SLIT("-dshow-rn-imports")
 opt_D_simplifier_stats		= lookUp  SLIT("-dsimplifier-stats")
 opt_D_source_stats		= lookUp  SLIT("-dsource-stats")
 opt_D_verbose_core2core		= lookUp  SLIT("-dverbose-simpl")
diff --git a/ghc/compiler/rename/RnIfaces.lhs b/ghc/compiler/rename/RnIfaces.lhs
index fc92acabb9a0b753ec4b973b1cd5f7a1358074d0..d52d8868192777ca15c08b1bfdea331cc59d824b 100644
--- a/ghc/compiler/rename/RnIfaces.lhs
+++ b/ghc/compiler/rename/RnIfaces.lhs
@@ -20,7 +20,7 @@ module RnIfaces (
 #include "HsVersions.h"
 
 import CmdLineOpts	( opt_PruneTyDecls,  opt_PruneInstDecls, 
-			  opt_IgnoreIfacePragmas
+			  opt_D_show_rn_imports, opt_IgnoreIfacePragmas
 			)
 import HsSyn		( HsDecl(..), TyDecl(..), ClassDecl(..), InstDecl(..), IfaceSig(..), 
 			  HsType(..), ConDecl(..), IE(..), ConDetails(..), Sig(..),
@@ -977,22 +977,24 @@ findAndReadIface doc_str mod_name as_source
 	  file_path = dir ++ '/' : moduleString mod_name ++ (mod_suffix hisuf)
 \end{code}
 
-@readIface@ trys just one file.
+@readIface@ tries just the one file.
 
 \begin{code}
 readIface :: String -> RnMG (Maybe ParsedIface)	
 	-- Nothing <=> file not found, or unreadable, or illegible
 	-- Just x  <=> successfully found and parsed 
 readIface file_path
-  = ioToRnMG (hGetStringBuffer file_path)                       `thenRn` \ read_result ->
-    --traceRn (hcat[ptext SLIT("Opening...."), text file_path])   `thenRn_`
+  = ioToRnMG (hGetStringBuffer file_path)       `thenRn` \ read_result ->
     case read_result of
 	Right contents	  -> 
              case parseIface contents (mkSrcLoc (mkFastString file_path) 1) of
-	          Failed err      ->
-		     failWithRn Nothing err 
+	          Failed err      -> failWithRn Nothing err 
 		  Succeeded (PIface iface) -> 
-		     returnRn (Just iface)
+		        if opt_D_show_rn_imports then
+			   putDocRn (hcat[ptext SLIT("Read "), text file_path]) `thenRn_`
+			   returnRn (Just iface)
+			else
+			   returnRn (Just iface)
 
         Left err ->
 	  if isDoesNotExistError err then