diff --git a/ghc/docs/comm/the-beast/driver.html b/ghc/docs/comm/the-beast/driver.html
index 6f6e78473e35aa957c44cb8d3324c7d94627d4bf..fbf65e33e79ed3721dcc1650e42f23bcd6d2c974 100644
--- a/ghc/docs/comm/the-beast/driver.html
+++ b/ghc/docs/comm/the-beast/driver.html
@@ -70,6 +70,21 @@
       <a
       href="http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/ghc/compiler/HsVersions.h"><code>HsVersions.h</code></a>. 
 
+    <h2>What Happens When</h2>
+    <p>
+      Inside the Haskell compiler proper (<code>hsc</code>), a whole series of
+      stages (``passes'') are executed in order to transform your Haskell program
+      into C or native code.  This process is orchestrated by
+      <code>main/HscMain.hscMain</code> and its relative
+      <code>hscReComp</code>.  The latter directly invokes, in order,
+      the parser, the renamer, the typechecker, the desugarer, the
+      simplifier (Core2Core), the CoreTidy pass, the CorePrep pass,
+      conversion to STG (CoreToStg), the interface generator
+      (MkFinalIface), the code generator, and code output.  The
+      simplifier is the most complex of these, and is made up of many
+      sub-passes.  These are controlled by <code>buildCoreToDo</code>,
+      as described below.
+
     <h2>Scheduling Optimisations Phases</h2>
     <p>
       GHC has a large variety of optimisations at its disposal, many of which
@@ -157,7 +172,7 @@
     
     <p><small>
 <!-- hhmts start -->
-Last modified: Tue Nov  6 16:08:59 EST 2001
+Last modified: Tue Feb 19 11:09:00 UTC 2002
 <!-- hhmts end -->
     </small>
   </body>