diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change log
 
+## Release 1.3.1
+
+* Fixed an issue where the test suite would not compile with `hakyll-4.16.8.0`+ (#15).
+
 ## Release 1.3.0
 
 * Fixed handling of EXIF orientation of metadata, which was previously thought to be fixed (#11).
diff --git a/hakyll-images.cabal b/hakyll-images.cabal
--- a/hakyll-images.cabal
+++ b/hakyll-images.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name:           hakyll-images
-version:        1.3.0
+version:        1.3.1
 synopsis:       Hakyll utilities to work with images
 description:    
   hakyll-images is an add-on to the hakyll package. It adds utilities to work with images, 
@@ -47,7 +47,7 @@
     , base              >= 4.8  && <5
     , binary            >= 0.5  && <1
     , bytestring        >= 0.9  && <1
-    , hakyll            >  4    && <5
+    , hakyll            >= 4.17 && <4.18
     , vector            >= 0.12 && <0.14
   default-language: Haskell2010
 
@@ -72,7 +72,7 @@
     , containers
     , directory         >= 1    && <2
     , filepath          >= 1    && <2
-    , hakyll            >= 4    && <5
+    , hakyll
     , hakyll-images
     , tasty             >= 0.11 && <2
     , tasty-hunit       >= 0.9  && <1
diff --git a/tests/Hakyll/Images/Common/Tests.hs b/tests/Hakyll/Images/Common/Tests.hs
--- a/tests/Hakyll/Images/Common/Tests.hs
+++ b/tests/Hakyll/Images/Common/Tests.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP               #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 --------------------------------------------------------------------------------
@@ -22,15 +21,6 @@
 import Test.Tasty.HUnit (Assertion, assertBool, testCase)
 import Text.Printf (printf)
 
--- RunMode was introduced in Hakyll 4.15
-runCompat :: Configuration -> L.Logger -> Rules a -> IO (ExitCode, RuleSet)
-runCompat = 
-#if MIN_VERSION_hakyll(4,15,0)
-  run RunModeNormal 
-#else
-  run
-#endif
-
 fromAssertions ::
   -- | Name
   String ->
@@ -59,7 +49,7 @@
 case1 :: Assertion
 case1 = do
   logger <- L.new L.Error
-  _ <- runCompat testConfiguration logger $ do
+  _ <- run RunModeNormal testConfiguration logger $ do
     match "*.jpg" $ do
       route idRoute
       compile $
diff --git a/tests/Hakyll/Images/Tests/Utils.hs b/tests/Hakyll/Images/Tests/Utils.hs
--- a/tests/Hakyll/Images/Tests/Utils.hs
+++ b/tests/Hakyll/Images/Tests/Utils.hs
@@ -23,7 +23,10 @@
   IO (CompilerResult a)
 testCompiler underlying compiler = do
   store <- Store.new True $ storeDirectory testConfiguration
-  provider <-
+  -- Note that before hakyll 4.17, `newProvider` returned a different
+  -- structure. To keep things simple, we make the minimum hakyll version
+  -- 4.17.
+  (provider,_) <-
     newProvider store (const $ return False) $
       providerDirectory testConfiguration
   logger <- Logger.new Logger.Error
