diff --git a/docs/users_guide/bugs.xml b/docs/users_guide/bugs.xml
index c0c4bdbd50aae3980e12339b207054e003886c42..50ffb399a43a9c574af135cb022f9d998f5bfe5a 100644
--- a/docs/users_guide/bugs.xml
+++ b/docs/users_guide/bugs.xml
@@ -344,7 +344,7 @@ checking for duplicates.  The reason for this is efficiency, pure and simple.
         the problem would impose an extra overhead on every
         compilation.  So the bug remains un-fixed.  There is more
         background in <ulink
-        url="http://research.microsoft.com/~simonpj/Papers/inlining">
+        url="http://research.microsoft.com/~simonpj/Papers/inlining/">
         Secrets of the GHC inliner</ulink>.</para>
       </listitem>
 
diff --git a/docs/users_guide/glasgow_exts.xml b/docs/users_guide/glasgow_exts.xml
index 0cd97c23261bad4d42179468150c856fa0404d9f..ed732f2cefc7bcc38bc1ba3a043b6ad3a178ea5a 100644
--- a/docs/users_guide/glasgow_exts.xml
+++ b/docs/users_guide/glasgow_exts.xml
@@ -2609,8 +2609,8 @@ the standard method is used or the one described here.)
 <para>
 This section, and the next one, documents GHC's type-class extensions.
 There's lots of background in the paper <ulink
-url="http://research.microsoft.com/~simonpj/Papers/type-class-design-space" >Type
-classes: exploring the design space</ulink > (Simon Peyton Jones, Mark
+url="http://research.microsoft.com/~simonpj/Papers/type-class-design-space/">Type
+classes: exploring the design space</ulink> (Simon Peyton Jones, Mark
 Jones, Erik Meijer).
 </para>
 <para>
@@ -2701,7 +2701,7 @@ GHC lifts this restriction (flag <option>-XConstrainedClassMethods</option>).
 </title>
 
 <para> Functional dependencies are implemented as described by Mark Jones
-in &ldquo;<ulink url="http://www.cse.ogi.edu/~mpj/pubs/fundeps.html">Type Classes with Functional Dependencies</ulink>&rdquo;, Mark P. Jones, 
+in &ldquo;<ulink url="http://citeseer.ist.psu.edu/jones00type.html">Type Classes with Functional Dependencies</ulink>&rdquo;, Mark P. Jones, 
 In Proceedings of the 9th European Symposium on Programming, 
 ESOP 2000, Berlin, Germany, March 2000, Springer-Verlag LNCS 1782,
 .
@@ -4646,7 +4646,7 @@ and all others are monomorphic until the group is generalised
 </para>
 
 <para>Following a suggestion of Mark Jones, in his paper
-<ulink url="http://www.cse.ogi.edu/~mpj/thih/">Typing Haskell in
+<ulink url="http://citeseer.ist.psu.edu/424440.html">Typing Haskell in
 Haskell</ulink>,
 GHC implements a more general scheme.  If <option>-XRelaxedPolyRec</option> is
 specified:
diff --git a/docs/users_guide/parallel.xml b/docs/users_guide/parallel.xml
index 242ba2248e4a465ecb30b1abca110d9726f8bc0b..96e4e56393052317dd58664e8699e855d08cb802 100644
--- a/docs/users_guide/parallel.xml
+++ b/docs/users_guide/parallel.xml
@@ -33,7 +33,7 @@
 	      url="http://research.microsoft.com/copyright/accept.asp?path=/users/simonpj/papers/concurrent-haskell.ps.gz">
 	      Concurrent Haskell paper</ulink> is still an excellent
 	      resource, as is <ulink
-	      url="http://research.microsoft.com/%7Esimonpj/papers/marktoberdorf">Tackling
+	      url="http://research.microsoft.com/%7Esimonpj/papers/marktoberdorf/">Tackling
 	      the awkward squad</ulink>.
   </para><para>
   To the programmer, Concurrent Haskell introduces no new language constructs;