diff --git a/Changelog.markdown b/Changelog.markdown
--- a/Changelog.markdown
+++ b/Changelog.markdown
@@ -1,5 +1,8 @@
 # Changelog
 
+## Unreleased
+* Switch from deprecated cryptohash dependency to cryptohash-md5 
+
 ## 0.2.1.0
  * Forked & renamed to postgresql-migration
  * Support for changing the schema_migration table name 
diff --git a/Readme.markdown b/Readme.markdown
--- a/Readme.markdown
+++ b/Readme.markdown
@@ -28,7 +28,7 @@
 This library executes SQL/Haskell migration scripts and keeps track of their
 meta information.
 
-Scripts are be executed exactly once and any changes to scripts will cause
+Scripts are executed exactly once and any changes to scripts will cause
 a run-time error notifying you of a corrupted database.
 
 The meta information consists of:
@@ -140,7 +140,7 @@
 
 ### Options
 
-The `runMigration` and `runMigration` functions take an options record that let you
+The `runMigration` and `runMigrations` functions take an options record that let you
 set the following
 
  - `optVerbose`: Is verbose logging enabled or not
@@ -165,7 +165,7 @@
 
 ```bash
 cabal configure --enable-tests 
-PGHOST=localhost PGDATABASE=test make-cabal test
+PGHOST=localhost PGDATABASE=test make cabal-test
 ```
 
 To build with stack use the following command
@@ -181,7 +181,7 @@
 ```
 
 NB note that the **psql** test argument must be set for the test suite to run. This is so that other CI environments like
-stackage or nix that wont have a running test psql instance will not fail on these tests
+stackage or nix that won't have a running test psql instance will not fail on these tests
 
 
 # Changes from the original postgresql-simple-migration (version 0.1)
@@ -238,5 +238,3 @@
 ```
 
 That is all that needs to change. Your migrations scripts etc all remain as is.
-
-
diff --git a/postgresql-migration.cabal b/postgresql-migration.cabal
--- a/postgresql-migration.cabal
+++ b/postgresql-migration.cabal
@@ -1,6 +1,6 @@
 cabal-version:              3.0
 name:                       postgresql-migration
-version:                    0.2.1.6
+version:                    0.2.1.7
 synopsis:                   PostgreSQL Schema Migrations
 homepage:                   https://github.com/andrevdm/postgresql-migration
 Bug-reports:                https://github.com/andrevdm/postgresql-migration/issues
@@ -12,7 +12,7 @@
 category:                   Database
 build-type:                 Simple
 description:                A PostgreSQL-simple schema migration utility
-tested-with:                GHC==9.2.4, GHC==9.0.1, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4
+tested-with:                GHC==9.2.4, GHC==9.0.1, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==9.6.1
 
 extra-source-files:         License
                             Readme.markdown
@@ -36,7 +36,7 @@
   ghc-options: -fwrite-ide-info -hiedir=.hie
 
 common common-ghc-options
-  ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat -Wredundant-constraints -Wnoncanonical-monad-instances -Widentities -fhide-source-paths -Wpartial-fields -fhide-source-paths -freverse-errors
+  ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat -Wredundant-constraints -Wnoncanonical-monad-instances -Widentities -Wpartial-fields -fhide-source-paths -freverse-errors
 
 
 library
@@ -54,15 +54,16 @@
   hs-source-dirs:         src
   default-language:       Haskell2010
   build-depends:          base                        >= 4.9      && < 5.0
-                        , base64-bytestring           >= 1.0
-                        , bytestring                  >= 0.10
-                        , cryptohash                  >= 0.11
-                        , directory                   >= 1.2
-                        , filepath                    >= 1.4.1.0
-                        , postgresql-simple           >= 0.4
-                        , time                        >= 1.4
-                        , text                        >= 1.2 || ^>=2.0
+                        , base64-bytestring           >= 1.0      && < 1.3
+                        , bytestring                  >= 0.10     && < 0.12
+                        , cryptohash-md5              >= 0.11     && < 0.12
+                        , directory                   >= 1.2      && < 1.4
+                        , filepath                    >= 1.4.1.0  && < 1.5
+                        , postgresql-simple           >= 0.4      && < 0.7
+                        , time                        >= 1.4      && < 1.13
+                        , text                        >= 1.2      && < 2.1
 
+
 executable migrate
   import:                 common-options
   import:                 common-ghc-options
@@ -78,12 +79,12 @@
   build-depends:          postgresql-migration
                         , base                        >= 4.9      && < 5.0
                         , base64-bytestring           >= 1.0
-                        , bytestring                  >= 0.10
-                        , cryptohash                  >= 0.11
-                        , directory                   >= 1.2
-                        , postgresql-simple           >= 0.4
-                        , time                        >= 1.4
-                        , text                        >= 1.2 || ^>=2.0
+                        , bytestring                  >= 0.10     && < 0.12
+                        , cryptohash-md5              >= 0.11     && < 0.12
+                        , directory                   >= 1.2      && < 1.4
+                        , postgresql-simple           >= 0.4      && < 0.7
+                        , time                        >= 1.4      && < 1.13
+                        , text                        >= 1.2      && < 2.1
 
 test-suite tests
   import:                 common-options
@@ -101,6 +102,6 @@
   type:                   exitcode-stdio-1.0
   build-depends:          postgresql-migration
                         , base                        >= 4.9      && < 5.0
-                        , bytestring                  >= 0.10
-                        , postgresql-simple           >= 0.4
-                        , hspec                       >= 2.2
+                        , bytestring                  >= 0.10     && < 0.12
+                        , postgresql-simple           >= 0.4      && < 0.7
+                        , hspec                       >= 2.2      && < 2.12
diff --git a/src/Database/PostgreSQL/Simple/Migration.hs b/src/Database/PostgreSQL/Simple/Migration.hs
--- a/src/Database/PostgreSQL/Simple/Migration.hs
+++ b/src/Database/PostgreSQL/Simple/Migration.hs
@@ -46,7 +46,7 @@
 import qualified Data.ByteString.Char8 as BS8 (unpack)
 import qualified Data.ByteString.Base64 as B64 (encode)
 import           Data.Functor ((<&>))
-import           Data.List (isPrefixOf, sort)
+import           Data.List (sort)
 import           Data.Time (LocalTime)
 import qualified Data.Text as T
 import qualified Data.Text.IO as T (putStrLn, hPutStrLn)
@@ -64,11 +64,11 @@
 import           Database.PostgreSQL.Simple.ToRow (ToRow (..))
 import           Database.PostgreSQL.Simple.Types (Query (..))
 import           Database.PostgreSQL.Simple.Util (existsTable)
-import           System.Directory (getDirectoryContents)
+import           System.Directory (listDirectory)
 import           System.FilePath ((</>))
 import           System.IO (stderr)
 
--- | Executes migrations inside the provided 'MigrationContext'.
+-- | Executes migrations using the provided 'MigrationOptions'.
 --
 -- Returns 'MigrationSuccess' if the provided 'MigrationCommand' executes
 -- without error. If an error occurs, execution is stopped and
@@ -156,7 +156,7 @@
 -- | Lists all files in the given 'FilePath' 'dir' in alphabetical order.
 scriptsInDirectory :: FilePath -> IO [String]
 scriptsInDirectory dir =
-  getDirectoryContents dir <&> (sort . filter (\x -> not $ "." `isPrefixOf` x))
+  sort <$> listDirectory dir
 
 
 -- | Executes a generic SQL migration for the provided script 'name' with content 'contents'.
@@ -215,7 +215,7 @@
 executeValidation con opts cmd = doStepTransaction opts con $
   case cmd of
     MigrationInitialization ->
-      existsTable con (BS8.unpack $ optTableName opts) >>= \r -> pure $ if r
+      existsTable con (BS8.unpack $ optTableName opts) <&> \r -> if r
         then MigrationSuccess
         else MigrationError ("No such table: " <> BS8.unpack (optTableName opts))
     MigrationDirectory path ->
@@ -340,11 +340,11 @@
   | Quiet
   deriving (Show, Eq)
 
--- | Determines how transactions are handled
--- Its is recommened to use transaction when running migrations
--- Certain actions require a transaction per script, if you are doing this use TransactionPerStep
--- If you want a single transaction for all migrations use TransactionPerRun
--- If you do not want a transaction, or are using an existing transaction then use NoNewTransaction
+-- | Determines how transactions are handled.
+-- It is recommened to use transaction when running migrations.
+-- Certain actions require a transaction per script, if you are doing this use TransactionPerStep.
+-- If you want a single transaction for all migrations use TransactionPerRun.
+-- If you do not want a transaction, or are using an existing transaction then use NoNewTransaction.
 data TransactionControl
   = NoNewTransaction -- ^ No new transaction will be started. Up to the caller to decide if the run is in a transaction or not
   | TransactionPerRun -- ^ Call 'withTransaction' once for the entire 'MigrationCommand'
