diff --git a/ghc/docs/users_guide/using.vsgml b/ghc/docs/users_guide/using.vsgml
index b5b5a751dfafde7d189898dfffdc4ceb78bdae84..f0a435a4c8b77e73def36399aafdb3066b69da16 100644
--- a/ghc/docs/users_guide/using.vsgml
+++ b/ghc/docs/users_guide/using.vsgml
@@ -1169,24 +1169,25 @@ Specify a directory in which to look for @#include@ files, in
 the usual C way.
 </descrip>
 
-The @ghc@ driver pre-defines several macros:
+The @ghc@ driver pre-defines several macros when processing Haskell
+source code (@.hs@ or @.lhs@ files):
+
 <descrip>
 <tag>@__HASKELL98__@:</tag>
 <nidx>__HASKELL98__</nidx>
-If defined, this means that GHC supports the language
-defined by the Haskell 98 report.
+If defined, this means that GHC supports the language defined by the
+Haskell 98 report.
 
-NB. This macro is <em/only/ set when pre-processing Haskell source
-(ie. @.hs@ or @.lhs@ files).
+<tag>@__HASKELL__=98@:</tag>
+<nidx>__HASKELL__</nidx>
+In GHC 4.04 and later, the @__HASKELL__@ macro is defined as having
+the value @98@.
 
 <tag>@__HASKELL1__@:</tag>
 <nidx>__HASKELL1__ macro</nidx>
-If defined to <em/n/, that means GHC supports the
-Haskell language defined in the Haskell report version <em/1.n/.
-Currently 5.
-
-NB. As with <tt/__HASKELL98__/, this macro is <em/only/ set when
-pre-processing Haskell source (ie. @.hs@ or @.lhs@ files).
+If defined to <em/n/, that means GHC supports the Haskell language
+defined in the Haskell report version <em/1.n/.  Currently 5.  This
+macro is deprecated, and will probably disappear in future versions.
 
 <tag>@__GLASGOW_HASKELL__@:</tag>
 <nidx>__GLASGOW_HASKELL__ macro</nidx>
diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl
index b9d4ef2f1f62dffbf4af16f5903412cb8ee999c4..d09be78ca6d8fa25619fc178129382cd8760385d 100644
--- a/ghc/driver/ghc.lprl
+++ b/ghc/driver/ghc.lprl
@@ -367,7 +367,8 @@ $Haskell1Version = 5; # i.e., Haskell 1.4
 # Cpp symbols defined when we're processing Haskell source.
 
 @HsSourceCppOpts = 
-	( "-D__HASKELL1__=$Haskell1Version"
+	( "-D__HASKELL__=98"
+	, "-D__HASKELL1__=$Haskell1Version"
 	, "-D__GLASGOW_HASKELL__=$ProjectVersionInt"
 	, "-D__HASKELL98__"
 	, "-D__CONCURRENT_HASKELL__"