diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Changelog for the [`ghc-typelits-natnormalise`](http://hackage.haskell.org/package/ghc-typelits-natnormalise) package
 
+## 0.5.10 *April 15th 2018*
+* Add support for GHC 8.5.20180306
+
 ## 0.5.9 *March 17th 2018*
 * Add support for GHC 8.4.1
 
diff --git a/ghc-typelits-natnormalise.cabal b/ghc-typelits-natnormalise.cabal
--- a/ghc-typelits-natnormalise.cabal
+++ b/ghc-typelits-natnormalise.cabal
@@ -1,5 +1,5 @@
 name:                ghc-typelits-natnormalise
-version:             0.5.9
+version:             0.5.10
 synopsis:            GHC typechecker plugin for types of kind GHC.TypeLits.Nat
 description:
   A type checker plugin for GHC that can solve /equalities/ of types of kind
@@ -48,7 +48,8 @@
 extra-source-files:  README.md
                      CHANGELOG.md
 cabal-version:       >=1.10
-tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1
+tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1, GHC == 8.4.2,
+                     GHC == 8.5.0
 
 source-repository head
   type: git
@@ -66,7 +67,7 @@
                        GHC.TypeLits.Normalise.Unify
   build-depends:       base                >=4.9   && <5,
                        ghc                 >=8.0.1 && <8.6,
-                       ghc-tcplugins-extra >=0.2.4,
+                       ghc-tcplugins-extra >=0.2.5,
                        integer-gmp         >=1.0   && <1.1
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/GHC/TypeLits/Normalise.hs b/src/GHC/TypeLits/Normalise.hs
--- a/src/GHC/TypeLits/Normalise.hs
+++ b/src/GHC/TypeLits/Normalise.hs
@@ -62,6 +62,9 @@
 #endif
 
 -- GHC API
+#if MIN_VERSION_ghc(8,5,0)
+import CoreSyn    (Expr (..))
+#endif
 import Outputable (Outputable (..), (<+>), ($$), text)
 import Plugins    (Plugin (..), defaultPlugin)
 import TcEvidence (EvTerm (..))
@@ -264,7 +267,11 @@
         natCoBndr = (,natReflCo) <$> (newFlexiTyVar typeNatKind)
     forallEv <- mkForAllCos <$> (replicateM (length preds) natCoBndr) <*> pure ctEv
     let finalEv = foldl mkInstCo forallEv holeEvs
+#if MIN_VERSION_ghc(8,5,0)
+    return (Just ((EvExpr (Coercion finalEv), ct),newWanted))
+#else
     return (Just ((EvCoercion finalEv, ct),newWanted))
+#endif
   _ -> return Nothing
 
 unifyItemToCt :: CtLoc
