diff --git a/ghc/utils/hscpp/hscpp.prl b/ghc/utils/hscpp/hscpp.prl
index 8d753e5553d68c5dfdf36b2dce8b32d155ea0ab9..802e9edff0a747c5849395592dc329e153d2ddfb 100644
--- a/ghc/utils/hscpp/hscpp.prl
+++ b/ghc/utils/hscpp/hscpp.prl
@@ -36,10 +36,15 @@ open(INPIPE, "$Cpp @args - <$file |")
 
 while (<INPIPE>) {
 
+    print STDERR $_;
+
 # line directives come in flavo[u]rs:
 #   s/^#\s*line\s+\d+$/\{\-# LINE \-\}/;   IGNORE THIS ONE FOR NOW
-    s/^#\s*line\s+(\d+)\s+(\".+\")$/\{\-# LINE \1 \"$file\" \-\}/;
-    s/^#\s*(\d+)\s+(\".*\").*/\{\-# LINE \1 \"$file\" \-\}/;
+    s/^#\s*line\s+(\d+)\s+(\".+\")$/\{\-# LINE \1 \2 \-\}/;
+    s/^#\s*(\d+)\s+(\".*\").*/\{\-# LINE \1 \2 \-\}/;
+
+    s/^#\s*(\d+)\s+(\"\").*//;  # these are a result of our using stdin in
+				# the $(CPP) command line above.
 
     print $_;
 }