diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html
index 849aa97..20705c6 100644
--- a/docs/GettingStarted.html
+++ b/docs/GettingStarted.html
@@ -191,8 +191,6 @@
   </ul>
   </li>
 
-  <p></p>
-
   <li>Solaris on SparcV9 (Ultrasparc)
   <ul>
     <li>Approximately 1.52 GB of Free Disk Space
@@ -204,8 +202,6 @@
   </ul>
   </li>
 
-  <p></p>
-
   <li>FreeBSD on x86 (Pentium and above)
   <ul>
     <li>Approximately 918 MB of Free Disk Space
@@ -217,8 +213,6 @@
   </ul>
   </li>
 
-  <p></p>
-
   <li>MacOS X on PowerPC
   <ul>
     <li>No native code generation
@@ -317,7 +311,7 @@
 each of these names with the appropriate pathname on your local system.
 All these paths are absolute:</p>
 
-<dl compact>
+<dl>
     <dt>SRC_ROOT
     <dd>
     This is the top level directory of the LLVM source tree.
@@ -353,7 +347,7 @@
 You can set these on the command line, or better yet, set them in your
 <tt>.cshrc</tt> or <tt>.profile</tt>.
 
-<dl compact>
+<dl>
     <dt><tt>LLVM_LIB_SEARCH_PATH</tt>=<tt><i>LLVMGCCDIR</i>/bytecode-libs</tt>
     <dd>
     This environment variable helps the LLVM GCC front end find bytecode
@@ -371,7 +365,7 @@
 
 <!-- ======================================================================= -->
 <div class="doc_subsection">
-  <a name="unpack">Unpacking the LLVM Archives</a></h3>
+  <a name="unpack">Unpacking the LLVM Archives</a>
 </div>
 
 <div class="doc_text">
@@ -384,7 +378,7 @@
 </p>
 
 <p> The files are as follows:
-<dl compact>
+<dl>
     <dt>llvm-1.1.tar.gz
     <dd>This is the source code to the LLVM suite.
     <p>
@@ -409,7 +403,7 @@
 
 <!-- ======================================================================= -->
 <div class="doc_subsection">
-  <a name="checkout">Checkout LLVM from CVS</a></h3>
+  <a name="checkout">Checkout LLVM from CVS</a>
 </div>
 
 <div class="doc_text">
@@ -430,9 +424,10 @@
 directory and fully populate it with the LLVM source code, Makefiles,
 test directories, and local copies of documentation files.</p>
 
-<p>
-If you want to get a specific release (as opposed to the most recent revision),
-you can specify a label.  The following releases have the following label:
+<p>If you want to get a specific release (as opposed to the most recent
+revision), you can specify a label.  The following releases have the following
+label:</p>
+
 <ul>
   <li>
   Release 1.1: <b>RELEASE_11</b>
@@ -442,7 +437,6 @@
   Release 1.0: <b>RELEASE_1</b>
   </li>
 </ul>
-</p>
 
 <p>Note that the GCC front end is not included in the CVS repository. You
 should have downloaded the binary distribution for your platform.</p>
@@ -451,7 +445,7 @@
 
 <!-- ======================================================================= -->
 <div class="doc_subsection">
-  <a name="installcf">Install the GCC Front End</a></h3>
+  <a name="installcf">Install the GCC Front End</a>
 </div>
 
 <div class="doc_text">
@@ -527,7 +521,7 @@
 
 <p>The following options can be used to set or enable LLVM specific options:</p>
 
-<dl compact>
+<dl>
   <dt><i>--with-llvmgccdir=LLVMGCCDIR</i>
   <dd>
     Path to the location where the LLVM C front end binaries and
@@ -594,7 +588,7 @@
 <p>Once you have configured LLVM, you can build it.  There are three types of
 builds:</p>
 
-<dl compact>
+<dl>
     <dt>Debug Builds
     <dd>
     These builds are the default when one types <tt>gmake</tt> (unless the
@@ -634,7 +628,7 @@
 <p>There are several special targets which are useful when working with the LLVM
 source code:</p>
 
-<dl compact>
+<dl>
   <dt><tt>gmake clean</tt>
   <dd>
   Removes all files generated by the build.  This includes object files,
@@ -661,7 +655,7 @@
 <p>It is also possible to override default values from <tt>configure</tt> by
 declaring variables on the command line.  The following are some examples:</p>
 
-<dl compact>
+<dl>
   <dt><tt>gmake ENABLE_OPTIMIZED=1</tt>
   <dd>
   Perform a Release (Optimized) build.
@@ -712,10 +706,10 @@
 <p>The LLVM build will place files underneath <i>OBJ_ROOT</i> in directories
 named after the build type:</p>
 
-<dl compact>
+<dl>
   <dt>Debug Builds
   <dd>
-  <dl compact>
+  <dl>
     <dt>Tools
     <dd><tt><i>OBJ_ROOT</i>/tools/Debug</tt>
     <dt>Libraries
@@ -725,7 +719,7 @@
 
   <dt>Release Builds
   <dd>
-  <dl compact>
+  <dl>
     <dt>Tools
     <dd><tt><i>OBJ_ROOT</i>/tools/Release</tt>
     <dt>Libraries
@@ -735,7 +729,7 @@
 
   <dt>Profile Builds
   <dd>
-  <dl compact>
+  <dl>
     <dt>Tools
     <dd><tt><i>OBJ_ROOT</i>/tools/Profile</tt>
     <dt>Libraries
@@ -813,7 +807,7 @@
 almost all code exists in libraries, making it very easy to share code among the
 different <a href="#tools">tools</a>.</p>
 
-<dl compact>
+<dl>
   <dt><tt>llvm/lib/VMCore/</tt><dd> This directory holds the core LLVM
   source files that implement core classes like Instruction and BasicBlock.
 
@@ -893,26 +887,24 @@
 always get help for a tool by typing <tt>tool_name --help</tt>.  The
 following is a brief introduction to the most important tools.</p>
 
-<dl compact>
-  <dt>
-
-  <dt><tt><b>analyze</b></tt><dd> <tt>analyze</tt> is used to run a specific
+<dl>
+  <dt><tt><b>analyze</b></tt> <dd><tt>analyze</tt> is used to run a specific
   analysis on an input LLVM bytecode file and print out the results.  It is
   primarily useful for debugging analyses, or familiarizing yourself with
   what an analysis does.<p>
 
-  <dt><tt><b>bugpoint</b></tt><dd> <tt>bugpoint</tt> is used to debug
+  <dt><tt><b>bugpoint</b></tt> <dd><tt>bugpoint</tt> is used to debug
   optimization passes or code generation backends by narrowing down the
   given test case to the minimum number of passes and/or instructions that
   still cause a problem, whether it is a crash or miscompilation. See <a
   href="HowToSubmitABug.html">HowToSubmitABug.html</a> for more information
   on using <tt>bugpoint</tt>.<p>
 
-  <dt><tt><b>llvm-ar</b></tt><dd>The archiver produces an archive containing
+  <dt><tt><b>llvm-ar</b></tt> <dd>The archiver produces an archive containing
   the given LLVM bytecode files, optionally with an index for faster
   lookup.<p>
   
-  <dt><tt><b>llvm-as</b></tt><dd>The assembler transforms the human readable
+  <dt><tt><b>llvm-as</b></tt> <dd>The assembler transforms the human readable
   LLVM assembly to LLVM bytecode.<p>
 
   <dt><tt><b>llvm-dis</b></tt><dd>The disassembler transforms the LLVM
@@ -941,8 +933,9 @@
   <tt>llvmgcc</tt> tool is currently not included in the LLVM CVS tree
   because it is quite large and not very interesting.<p>
 
-  <ol>
-    <dt><tt><b>gccas</b></tt><dd> This tool is invoked by the
+  <blockquote>
+    <dl>
+    <dt><tt><b>gccas</b></tt> <dd>This tool is invoked by the
     <tt>llvmgcc</tt> frontend as the "assembler" part of the compiler.  This
     tool actually assembles LLVM assembly to LLVM bytecode,
     performs a variety of optimizations, and outputs LLVM bytecode.  Thus
@@ -954,19 +947,19 @@
     `<tt>as</tt>' utility so that the gcc frontend itself did not have to be
     modified to interface to a "weird" assembler.<p>
 
-    <dt><tt><b>gccld</b></tt><dd> <tt>gccld</tt> links together several LLVM
+    <dt><tt><b>gccld</b></tt> <dd><tt>gccld</tt> links together several LLVM
     bytecode files into one bytecode file and does some optimization.  It is
     the linker invoked by the GCC frontend when multiple .o files need to be
     linked together.  Like <tt>gccas</tt>, the command line interface of
     <tt>gccld</tt> is designed to match the system linker, to aid
-    interfacing with the GCC frontend.<p>
-  </ol>
+    interfacing with the GCC frontend.</dl><p>
+  </blockquote>
 
   <dt><tt><b>opt</b></tt><dd> <tt>opt</tt> reads LLVM bytecode, applies a
   series of LLVM to LLVM transformations (which are specified on the command
   line), and then outputs the resultant bytecode.  The '<tt>opt --help</tt>'
   command is a good way to get a list of the program transformations
-  available in LLVM.<p>
+  available in LLVM.
 
 </dl>
 
@@ -983,19 +976,19 @@
 of the utilities are actually required as part of the build process because they
 are code generators for parts of LLVM infrastructure.</p>
 
-<dl compact>
-  <td><tt><b>Burg/</b></tt><dd> <tt>Burg</tt> is an instruction selector
+<dl>
+  <dt><tt><b>Burg/</b></tt> <dd><tt>Burg</tt> is an instruction selector
   generator -- it builds trees on which it then performs pattern-matching to
   select instructions according to the patterns the user has specified. Burg
   is currently used in the Sparc V9 backend.<p>
 
-  <dt><tt><b>codegen-diff</b></tt><dd> <tt>codegen-diff</tt> is a script
+  <dt><tt><b>codegen-diff</b></tt> <dd><tt>codegen-diff</tt> is a script
   that finds differences between code that LLC generates and code that LLI
   generates. This is a useful tool if you are debugging one of them,
   assuming that the other generates correct output. For the full user
   manual, run <tt>`perldoc codegen-diff'</tt>.<p>
 
-  <dt><tt><b>cvsupdate</b></tt><dd> <tt>cvsupdate</tt> is a script that will
+  <dt><tt><b>cvsupdate</b></tt> <dd><tt>cvsupdate</tt> is a script that will
   update your CVS tree, but produce a much cleaner and more organized output
   than simply running <tt>`cvs -z3 up -dP'</tt> will. For example, it will group
   together all the new and updated files and modified files in separate
@@ -1003,20 +996,20 @@
   top of your LLVM CVS tree, running <tt>utils/cvsupdate</tt> is the
   preferred way of updating the tree.<p>
 
-  <dt><tt><b>emacs/</b></tt><dd> The <tt>emacs</tt> directory contains
+  <dt><tt><b>emacs/</b></tt> <dd>The <tt>emacs</tt> directory contains
   syntax-highlighting files which will work with Emacs and XEmacs editors,
   providing syntax highlighting support for LLVM assembly files and TableGen
   description files. For information on how to use the syntax files, consult
   the <tt>README</tt> file in that directory.<p>
 
-  <dt><tt><b>getsrcs.sh</b></tt><dd> The <tt>getsrcs.sh</tt> script finds
+  <dt><tt><b>getsrcs.sh</b></tt> <dd>The <tt>getsrcs.sh</tt> script finds
   and outputs all non-generated source files, which is useful if one wishes
   to do a lot of development across directories and does not want to
   individually find each file. One way to use it is to run, for example:
   <tt>xemacs `utils/getsources.sh`</tt> from the top of your LLVM source
   tree.<p>
   
-  <dt><tt><b>makellvm</b></tt><dd> The <tt>makellvm</tt> script compiles all
+  <dt><tt><b>makellvm</b></tt> <dd>The <tt>makellvm</tt> script compiles all
   files in the current directory and then compiles and links the tool that
   is the first argument. For example, assuming you are in the directory
   <tt>llvm/lib/Target/Sparc</tt>, if <tt>makellvm</tt> is in your path,
@@ -1025,17 +1018,17 @@
   causing a re-linking of LLC.<p>
 
   <dt><tt><b>NightlyTest.pl</b></tt> and
-  <tt><b>NightlyTestTemplate.html</b></tt><dd> These files are used in a
+  <tt><b>NightlyTestTemplate.html</b></tt> <dd>These files are used in a
   cron script to generate nightly status reports of the functionality of
   tools, and the results can be seen by following the appropriate link on
   the <a href="http://llvm.cs.uiuc.edu/">LLVM homepage</a>.<p>
 
-  <dt><tt><b>TableGen/</b></tt><dd> The <tt>TableGen</tt> directory contains
+  <dt><tt><b>TableGen/</b></tt> <dd>The <tt>TableGen</tt> directory contains
   the tool used to generate register descriptions, instruction set
   descriptions, and even assemblers from common TableGen description
   files.<p>
 
-  <dt><tt><b>vim/</b></tt><dd> The <tt>vim</tt> directory contains
+  <dt><tt><b>vim/</b></tt> <dd>The <tt>vim</tt> directory contains
   syntax-highlighting files which will work with the VIM editor, providing
   syntax highlighting support for LLVM assembly files and TableGen
   description files. For information on how to use the syntax files, consult
@@ -1144,6 +1137,11 @@
 
 <hr>
 <address>
+  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
+  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+  <a href="http://validator.w3.org/check/referer"><img
+  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
+
   <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
   Last modified: $Date$
