diff --git a/Changelog b/Changelog
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,7 @@
+lambdabot 5.0.3
+	* compatibility with ghc-7.10: relax utf8-string upper bound
+	* numerous bugfixes (#121, #122, #123, #117, #98)
+
 lambdabot 5.0.2.2
 	* update Changelog
 
diff --git a/State/haddock b/State/haddock
Binary files a/State/haddock and b/State/haddock differ
diff --git a/lambdabot.cabal b/lambdabot.cabal
--- a/lambdabot.cabal
+++ b/lambdabot.cabal
@@ -1,5 +1,5 @@
 name:                   lambdabot
-version:                5.0.2.2
+version:                5.0.3
 
 license:                GPL
 license-file:           LICENSE
@@ -16,6 +16,7 @@
                         embedded in GHCi, via internet relay chat and on the web.
 
 homepage:               http://haskell.org/haskellwiki/Lambdabot
+bug-reports:            https://github.com/lambdabot/lambdabot/issues
 
 build-type:             Simple
 cabal-version:          >= 1.8
@@ -23,6 +24,8 @@
 
 extra-source-files:     src/Modules.hs
                         scripts/ghci.sh
+                        scripts/genhaddock.sh
+                        scripts/GenHaddock.hs
                         scripts/vim/bot
                         scripts/vim/pl
                         scripts/vim/README
@@ -50,10 +53,10 @@
 
   ghc-options:          -Wall -threaded
   build-depends:        base                         >= 3 && < 5,
-                        lambdabot-core               >= 5.0.1 && < 5.1,
-                        lambdabot-haskell-plugins    >= 5.0.2 && < 5.1,
-                        lambdabot-irc-plugins        >= 5.0.1 && < 5.1,
+                        lambdabot-core               >= 5.0.3 && < 5.1,
+                        lambdabot-haskell-plugins    >= 5.0.3 && < 5.1,
+                        lambdabot-irc-plugins        >= 5.0.3 && < 5.1,
                         lambdabot-misc-plugins       >= 5.0.1 && < 5.1,
-                        lambdabot-novelty-plugins    >= 5.0.1 && < 5.1,
-                        lambdabot-reference-plugins  >= 5.0.1 && < 5.1,
+                        lambdabot-novelty-plugins    >= 5.0.3 && < 5.1,
+                        lambdabot-reference-plugins  >= 5.0.3 && < 5.1,
                         lambdabot-social-plugins     >= 5.0.1 && < 5.1
diff --git a/scripts/GenHaddock.hs b/scripts/GenHaddock.hs
new file mode 100644
--- /dev/null
+++ b/scripts/GenHaddock.hs
@@ -0,0 +1,15 @@
+--
+-- | Generate the initial @index state
+--
+import Text.HTML.TagSoup
+import Data.List
+
+main = interact (unlines . go [] . parseTags)
+
+go mods (TagOpen "td" [("class","src")] : TagText ident : xs) =
+    nub mods ++ ["" | not (null mods)] ++ ident : go [] xs
+go mods (TagOpen "td" [("class","module")] : xs) =
+    let (ys, zs) = span (not . isTagCloseName "td") xs in
+    go (mods ++ words (filter (/= ',') (innerText ys))) zs
+go mods (x : xs) = go mods xs
+go mods [] = nub mods ++ ["" | not (null mods)]
diff --git a/scripts/genhaddock.sh b/scripts/genhaddock.sh
new file mode 100644
--- /dev/null
+++ b/scripts/genhaddock.sh
@@ -0,0 +1,2 @@
+#! /bin/sh
+curl -L https://www.haskell.org/ghc/docs/latest/html/libraries/doc-index-All.html | runhaskell GenHaddock.hs | gzip -9 > ../State/haddock
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -6,7 +6,7 @@
 import Lambdabot.Main
 import Lambdabot.Plugin.Haskell
 import Modules      (modulesInfo)
-import Paths_lambdabot (getDataDir)
+import qualified Paths_lambdabot as P
 
 import Control.Applicative
 import Control.Monad
@@ -42,7 +42,7 @@
         noinsult = return (enableInsults :=> False)
 
 versionString :: String
-versionString = ("lambdabot version " ++ showVersion lambdabotVersion)
+versionString = ("lambdabot version " ++ showVersion P.version)
 
 version :: IO a
 version = do
@@ -70,11 +70,13 @@
     (config, nonOpts, errors) <- getOpt Permute flags <$> getArgs
     when (not (null errors && null nonOpts)) (usage errors)
     config' <- sequence config
-    dir <- getDataDir
-    exitWith =<< lambdabotMain modulesInfo ([dataDir :=> dir] ++ config')
+    dir <- P.getDataDir
+    exitWith <=< lambdabotMain modulesInfo $
+        [dataDir :=> dir, lbVersion :=> P.version] ++ config'
 
 -- special online target for ghci use
 online :: [String] -> IO ()
 online strs = do
-    dir <- getDataDir
-    void (lambdabotMain modulesInfo [dataDir :=> dir, onStartupCmds :=> strs])
+    dir <- P.getDataDir
+    void $ lambdabotMain modulesInfo
+        [dataDir :=> dir, lbVersion :=> P.version, onStartupCmds :=> strs]
