diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+Changes in version 2.9.1
+
+  * Fix build in GHC tree
+
+  * Improve .cabal file
+
 Changes in version 2.9.0
 
   * Drop support for ghc < 7
diff --git a/dist/build/haddock/haddock-tmp/Haddock/Lex.hs b/dist/build/haddock/haddock-tmp/Haddock/Lex.hs
--- a/dist/build/haddock/haddock-tmp/Haddock/Lex.hs
+++ b/dist/build/haddock/haddock-tmp/Haddock/Lex.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS -fglasgow-exts -cpp #-}
 {-# LINE 10 "src/Haddock/Lex.x" #-}
 
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE BangPatterns #-}   -- Generated by Alex
 {-# OPTIONS -Wwarn -w #-}
 -- The above warning supression flag is a temporary kludge.
 -- While working on this module you are encouraged to remove it and fix
diff --git a/dist/build/haddock/haddock-tmp/Haddock/Parse.hs b/dist/build/haddock/haddock-tmp/Haddock/Parse.hs
--- a/dist/build/haddock/haddock-tmp/Haddock/Parse.hs
+++ b/dist/build/haddock/haddock-tmp/Haddock/Parse.hs
@@ -1,6 +1,6 @@
 {-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}
 {-# OPTIONS -fglasgow-exts -cpp #-}
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE BangPatterns #-} -- required for versions of Happy before 1.18.6
 {-# OPTIONS -Wwarn -w #-}
 -- The above warning supression flag is a temporary kludge.
 -- While working on this module you are encouraged to remove it and fix
diff --git a/doc/haddock.xml b/doc/haddock.xml
--- a/doc/haddock.xml
+++ b/doc/haddock.xml
@@ -21,7 +21,7 @@
       <holder>Simon Marlow, David Waern</holder>
     </copyright>
     <abstract>
-      <para>This document describes Haddock version 2.9.0, a Haskell
+      <para>This document describes Haddock version 2.9.1, a Haskell
       documentation tool.</para>
     </abstract>
   </bookinfo>
@@ -1580,7 +1580,7 @@
 	<title>Special characters</title>
 
 	<para>The following characters have special meanings in
-	documentation comments: <literal>/</literal>,
+	documentation comments: <literal>\</literal>, <literal>/</literal>,
 	<literal>'</literal>, <literal>`</literal>,
 	<literal>"</literal>, <literal>@</literal>,
 	<literal>&lt;</literal>.  To insert a literal occurrence of
diff --git a/haddock.cabal b/haddock.cabal
--- a/haddock.cabal
+++ b/haddock.cabal
@@ -1,6 +1,6 @@
 name:                 haddock
-version:              2.9.0
-cabal-version:        >= 1.6
+version:              2.9.1
+cabal-version:        >= 1.10
 license:              BSD3
 build-type:           Simple
 license-file:         LICENSE
@@ -73,15 +73,16 @@
   manual: True
 
 executable haddock
+  default-language:     Haskell2010
   build-depends:
-    base >= 4.0.0.0 && < 4.4.0.0,
+    base == 4.3.*,
     filepath,
     directory,
     pretty,
     containers,
     array,
     xhtml >= 3000.2 && < 3000.3,
-    Cabal >= 1.5,
+    Cabal >= 1.10,
     ghc >= 7.0 && < 7.2
 
   if flag(in-ghc-tree)
@@ -95,7 +96,7 @@
 
   main-is:              Main.hs
   hs-source-dirs:       src
-  extensions:           CPP, DeriveDataTypeable,
+  default-extensions:   CPP, DeriveDataTypeable,
                         ScopedTypeVariables, MagicHash
   ghc-options:          -funbox-strict-fields -O2 -Wall -fwarn-tabs
 
@@ -132,15 +133,16 @@
     Haddock.Convert
    
 library
+  default-language:     Haskell2010
   build-depends:
-    base >= 4.0.0.0 && < 4.4.0.0,
+    base == 4.3.*,
     filepath,
     directory,
     pretty,
     containers,
     array,
     xhtml >= 3000.2 && < 3000.3,
-    Cabal >= 1.5,
+    Cabal >= 1.10,
     ghc >= 7.0 && < 7.2
 
   if flag(in-ghc-tree)
@@ -153,7 +155,7 @@
     build-depends: QuickCheck >= 2.1 && < 3
 
   hs-source-dirs:       src
-  extensions:           CPP, DeriveDataTypeable,
+  default-extensions:   CPP, DeriveDataTypeable,
                         ScopedTypeVariables, MagicHash
   ghc-options:          -funbox-strict-fields -O2 -Wall -fwarn-tabs
 
diff --git a/haddock.spec b/haddock.spec
--- a/haddock.spec
+++ b/haddock.spec
@@ -17,7 +17,7 @@
 # version label of your release tarball.
 
 %define name    haddock
-%define version 2.9.0
+%define version 2.9.1
 %define release 1
 
 Name:           %{name}
diff --git a/src/Haddock/Lex.x b/src/Haddock/Lex.x
--- a/src/Haddock/Lex.x
+++ b/src/Haddock/Lex.x
@@ -8,7 +8,7 @@
 --
 
 {
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE BangPatterns #-}   -- Generated by Alex
 {-# OPTIONS -Wwarn -w #-}
 -- The above warning supression flag is a temporary kludge.
 -- While working on this module you are encouraged to remove it and fix
diff --git a/src/Haddock/Parse.y b/src/Haddock/Parse.y
--- a/src/Haddock/Parse.y
+++ b/src/Haddock/Parse.y
@@ -1,5 +1,5 @@
 {
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE BangPatterns #-} -- required for versions of Happy before 1.18.6
 {-# OPTIONS -Wwarn -w #-}
 -- The above warning supression flag is a temporary kludge.
 -- While working on this module you are encouraged to remove it and fix
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -403,14 +403,14 @@
 #ifdef IN_GHC_TREE
 
 getInTreeLibDir :: IO String
-getInTreeLibDir =
-  do m <- getExecDir
-    case m of
-      Nothing -> error "No GhcLibDir found"
+getInTreeLibDir = do
+  m <- getExecDir
+  case m of
+    Nothing -> error "No GhcLibDir found"
 #ifdef NEW_GHC_LAYOUT
-      Just d -> return (d </> ".." </> "lib")
+    Just d -> return (d </> ".." </> "lib")
 #else
-      Just d -> return (d </> "..")
+    Just d -> return (d </> "..")
 #endif
 
 
