diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+Version 0.12.3.1 released 31 Dec 2018
+
+  * Improve compatibility with GHC 8.6 (Phil Ruffwind, #625).
+
+    + Replaced uses of uri (out of date package) with uri-bytestring, which
+      gitit already uses in other places.
+    + Bumped hoauth2 version bounds to support 1.8.*.
+
 Version 0.12.3 released 09 Oct 2018
 
   * Change hk-pyg.css to highlighting.css with new CSS for pandoc 2
diff --git a/gitit.cabal b/gitit.cabal
--- a/gitit.cabal
+++ b/gitit.cabal
@@ -1,5 +1,5 @@
 name:                gitit
-version:             0.12.3
+version:             0.12.3.1
 Cabal-version:       >= 1.8
 build-type:          Simple
 synopsis:            Wiki using happstack, git or darcs, and pandoc.
@@ -167,10 +167,9 @@
                      tagsoup >= 0.13 && < 0.15,
                      blaze-html >= 0.4 && < 0.10,
                      json >= 0.4 && < 0.10,
-                     uri >= 0.1 && < 0.2,
                      uri-bytestring >= 0.2.3.3 && <= 0.4,
                      split,
-                     hoauth2 >= 1.3.0 && < 1.8,
+                     hoauth2 >= 1.3.0 && < 1.9,
                      xml-conduit >= 1.5 && < 1.9,
                      http-conduit >= 2.1.6 && < 2.4,
                      http-client-tls >= 0.2.2 && < 0.4,
diff --git a/src/Network/Gitit/ContentTransformer.hs b/src/Network/Gitit/ContentTransformer.hs
--- a/src/Network/Gitit/ContentTransformer.hs
+++ b/src/Network/Gitit/ContentTransformer.hs
@@ -102,13 +102,14 @@
 #else
 import Text.Blaze.Renderer.String as Blaze ( renderHtml )
 #endif
+import URI.ByteString (Query(Query), URIRef(uriPath), laxURIParserOptions,
+                       parseURI, uriQuery)
 import qualified Data.Text as T
 import qualified Data.ByteString as S (concat)
-import qualified Data.ByteString.Char8 as SC (unpack)
+import qualified Data.ByteString.Char8 as SC (pack, unpack)
 import qualified Data.ByteString.Lazy as L (toChunks, fromChunks)
 import qualified Data.FileStore as FS
 import qualified Text.Pandoc as Pandoc
-import Text.URI (parseURI, URI(..), uriQueryItems)
 
 --
 -- ContentTransformer runners
@@ -459,11 +460,14 @@
         base' <- getWikiBase
         request <- askRq
         return $ do
-            uri <- getHeader "referer" request >>= parseURI . SC.unpack
-            let params = uriQueryItems uri
-            redirect' <- lookup "redirect" params
-            guard $ redirect' == "yes"
-            path' <- stripPrefix (base' ++ "/") (uriPath uri)
+            referer <- getHeader "referer" request
+            uri <- case parseURI laxURIParserOptions referer of
+                Left _ -> Nothing
+                Right uri -> Just uri
+            let Query params = uriQuery uri
+            redirect' <- lookup (SC.pack "redirect") params
+            guard $ redirect' == SC.pack "yes"
+            path' <- stripPrefix (base' ++ "/") (SC.unpack (uriPath uri))
             let path'' = if null path' then frontPage cfg else urlDecode path'
             guard $ isPage path''
             return path''
