diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for ghcid (* = breaking change)
 
+0.8.4, released 2020-03-15
+    #309, use cabal repl --repl-options to avoid errors
 0.8.3, released 2020-03-10
     #306, fix --target to work on exe: targets
 0.8.2, released 2020-03-08
diff --git a/ghcid.cabal b/ghcid.cabal
--- a/ghcid.cabal
+++ b/ghcid.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.18
 build-type:         Simple
 name:               ghcid
-version:            0.8.3
+version:            0.8.4
 license:            BSD3
 license-file:       LICENSE
 category:           Development
diff --git a/src/Ghcid.hs b/src/Ghcid.hs
--- a/src/Ghcid.hs
+++ b/src/Ghcid.hs
@@ -160,11 +160,9 @@
                 in f flags $ stack:cabal
               | ".ghci" `elem` files -> f ("ghci":opts) [curdir </> ".ghci"]
               | cabal /= [] ->
-                  let useCabal =
-                              [ "cabal", "repl" ] ++ maybeToList target
-                          ++  map ("--ghc-options=" ++) opts
-                      useGHCI = "cabal exec -- ghci":opts
-                  in  f (if null arguments then useCabal else useGHCI) cabal
+                  let useCabal = ["cabal","repl"] ++ maybeToList target ++ map ("--repl-options=" ++) opts
+                      useGhci = "cabal exec -- ghci":opts
+                  in  f (if null arguments then useCabal else useGhci) cabal
               | otherwise -> f ("ghci":opts) []
     where
         f c r = o{command = unwords $ c ++ map escape arguments, arguments = [], restart = restart ++ r, run = [], test = run ++ test}
