diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+Changes in 0.16.2
+  - Add doctest's necessary-for-operation options to GHC's command
+    line at the end, so that they over-ride anything provided by the
+    user. (#233)
+  - Allow GHC 8.8.
+
 Changes in 0.16.1
   - Fix loading plugins in doctests. (#224)
   - Require QuickCheck 2.13.1 or newer.
diff --git a/doctest.cabal b/doctest.cabal
--- a/doctest.cabal
+++ b/doctest.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 5ffb546147e627ad778b5c2b0392ec522276ee4b6c8d6574f238224b7494bba4
+-- hash: 5cc030c2d812828564b9725382af262e688b5005f8fff23c961b5ac94d7d22e1
 
 name:           doctest
-version:        0.16.1
+version:        0.16.2
 synopsis:       Test interactive Haskell examples
 description:    The doctest program checks examples in source code comments.  It is modeled
                 after doctest for Python (<http://docs.python.org/library/doctest.html>).
@@ -62,6 +62,7 @@
     test/integration/bugfixWorkingDirectory/description
     test/integration/bugfixWorkingDirectory/examples/Fib.hs
     test/integration/bugfixWorkingDirectory/Fib.hs
+    test/integration/color/Foo.hs
     test/integration/custom-package-conf/Bar.hs
     test/integration/custom-package-conf/foo/doctest-foo.cabal
     test/integration/custom-package-conf/foo/Foo.hs
@@ -136,7 +137,7 @@
     , deepseq
     , directory
     , filepath
-    , ghc >=7.0 && <8.7
+    , ghc >=7.0 && <8.9
     , ghc-paths >=0.1.0.9
     , process
     , syb >=0.3
@@ -158,7 +159,7 @@
     , directory
     , doctest
     , filepath
-    , ghc >=7.0 && <8.7
+    , ghc >=7.0 && <8.9
     , ghc-paths >=0.1.0.9
     , process
     , syb >=0.3
@@ -179,7 +180,7 @@
     , directory
     , doctest
     , filepath
-    , ghc >=7.0 && <8.7
+    , ghc >=7.0 && <8.9
     , ghc-paths >=0.1.0.9
     , process
     , syb >=0.3
@@ -237,7 +238,7 @@
     , deepseq
     , directory
     , filepath
-    , ghc >=7.0 && <8.7
+    , ghc >=7.0 && <8.9
     , ghc-paths >=0.1.0.9
     , hspec >=2.3.0
     , mockery
diff --git a/src/Interpreter.hs b/src/Interpreter.hs
--- a/src/Interpreter.hs
+++ b/src/Interpreter.hs
@@ -53,13 +53,13 @@
   -> IO a                   -- ^ Result of action
 withInterpreter flags action = do
   let
-    args = [
+    args = flags ++ [
         "--interactive"
 #if __GLASGOW_HASKELL__ >= 802
       , "-fdiagnostics-color=never"
       , "-fno-diagnostics-show-caret"
 #endif
-      ] ++ flags
+      ]
   bracket (new defaultConfig{configGhci = ghc} args) close action
 
 -- | Evaluate an expression; return a Left value on exceptions.
diff --git a/test/RunSpec.hs b/test/RunSpec.hs
--- a/test/RunSpec.hs
+++ b/test/RunSpec.hs
@@ -84,9 +84,9 @@
     it "respects HASKELL_PACKAGE_SANDBOX" $ do
       withCurrentDirectory "test/integration/custom-package-conf/foo" $ do
         ExitSuccess <- rawSystem "ghc-pkg" ["init", "../packages"]
-        ExitSuccess <- rawSystem "cabal" ["configure", "--disable-optimization", "--disable-library-profiling", "--package-db=../packages"]
-        ExitSuccess <- rawSystem "cabal" ["build"]
-        ExitSuccess <- rawSystem "cabal" ["register", "--inplace"]
+        ExitSuccess <- rawSystem "cabal" ["v1-configure", "--disable-optimization", "--disable-library-profiling", "--package-db=../packages"]
+        ExitSuccess <- rawSystem "cabal" ["v1-build"]
+        ExitSuccess <- rawSystem "cabal" ["v1-register", "--inplace"]
         return ()
 
       withEnv "HASKELL_PACKAGE_SANDBOX" "test/integration/custom-package-conf/packages" $ do
@@ -135,6 +135,11 @@
             , "# Final summary:"
             , "Examples: 1  Tried: 1  Errors: 0  Failures: 1"
         ]
+
+#if __GLASGOW_HASKELL__ >= 802
+    it "can deal with potentially problematic GHC options" $ do
+      hSilence [stderr] $ doctest ["-fdiagnostics-color=always", "test/integration/color/Foo.hs"]
+#endif
 
   describe "doctestWithOptions" $ do
     context "on parse error" $ do
diff --git a/test/integration/color/Foo.hs b/test/integration/color/Foo.hs
new file mode 100644
--- /dev/null
+++ b/test/integration/color/Foo.hs
@@ -0,0 +1,8 @@
+module Foo where
+
+import Data.Maybe
+
+-- | Convert a map into list array.
+-- prop> tabulate m !! fromEnum d == fromMaybe 0 (lookup d m)
+tabulate :: [(Bool, Double)] -> [Double]
+tabulate m = [fromMaybe 0 $ lookup False m, fromMaybe 0 $ lookup True m]
