diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+Changes in version 2.9.2
+
+  * Build with GHC 7.0.2
+
+  * Write Hoogle output in utf8; fixes GHC build on Windows
+
 Changes in version 2.9.1
 
   * Fix build in GHC tree
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.1, a Haskell
+      <para>This document describes Haddock version 2.9.2, a Haskell
       documentation tool.</para>
     </abstract>
   </bookinfo>
diff --git a/haddock.cabal b/haddock.cabal
--- a/haddock.cabal
+++ b/haddock.cabal
@@ -1,5 +1,5 @@
 name:                 haddock
-version:              2.9.1
+version:              2.9.2
 cabal-version:        >= 1.10
 license:              BSD3
 build-type:           Simple
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.1
+%define version 2.9.2
 %define release 1
 
 Name:           %{name}
diff --git a/src/Haddock/Backends/Hoogle.hs b/src/Haddock/Backends/Hoogle.hs
--- a/src/Haddock/Backends/Hoogle.hs
+++ b/src/Haddock/Backends/Hoogle.hs
@@ -26,7 +26,7 @@
 import Data.List
 import Data.Maybe
 import System.FilePath
-
+import System.IO
 
 prefix :: [String]
 prefix = ["-- Hoogle documentation, generated by Haddock"
@@ -42,8 +42,10 @@
                    ["@package " ++ package] ++
                    ["@version " ++ version | version /= ""] ++
                    concat [ppModule i | i <- ifaces, OptHide `notElem` ifaceOptions i]
-    writeFile (odir </> filename) (unlines contents)
-
+    h <- openFile (odir </> filename) WriteMode
+    hSetEncoding h utf8
+    hPutStr h (unlines contents)
+    hClose h
 
 ppModule :: Interface -> [String]
 ppModule iface = "" : doc (ifaceDoc iface) ++
diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs
--- a/src/Haddock/Interface/Create.hs
+++ b/src/Haddock/Interface/Create.hs
@@ -279,13 +279,17 @@
 -- bindings from an 'HsGroup'.
 declsFromGroup :: HsGroup Name -> [Decl]
 declsFromGroup group_ =
-  mkDecls hs_tyclds  TyClD    group_ ++
-  mkDecls hs_derivds DerivD   group_ ++
-  mkDecls hs_defds   DefD     group_ ++
-  mkDecls hs_fords   ForD     group_ ++
-  mkDecls hs_docs    DocD     group_ ++
-  mkDecls hs_instds  InstD    group_ ++
-  mkDecls (typesigs . hs_valds) SigD group_
+#if MIN_VERSION_ghc(7,0,2)
+  mkDecls (concat . hs_tyclds)  TyClD  group_ ++
+#else
+  mkDecls hs_tyclds             TyClD  group_ ++
+#endif
+  mkDecls hs_derivds            DerivD group_ ++
+  mkDecls hs_defds              DefD   group_ ++
+  mkDecls hs_fords              ForD   group_ ++
+  mkDecls hs_docs               DocD   group_ ++
+  mkDecls hs_instds             InstD  group_ ++
+  mkDecls (typesigs . hs_valds) SigD   group_
   where
     typesigs (ValBindsOut _ sigs) = filter isVanillaLSig sigs
     typesigs _ = error "expected ValBindsOut"
