diff --git a/doctest.cabal b/doctest.cabal
--- a/doctest.cabal
+++ b/doctest.cabal
@@ -1,11 +1,11 @@
--- This file has been generated from package.yaml by hpack version 0.27.0.
+-- This file has been generated from package.yaml by hpack version 0.28.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 03a9b0f4a629d8ae1361038b83b10eb6e4847761565ed78ae4d1b2046e6d0c0f
+-- hash: d9e1502a7c11bbf6626127a98ee976799f47df80bfa8ec5693f37717bff0db96
 
 name:           doctest
-version:        0.15.0
+version:        0.15.1
 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>).
@@ -21,7 +21,6 @@
 maintainer:     Simon Hengel <sol@typeful.net>
 build-type:     Simple
 cabal-version:  >= 1.10
-
 extra-source-files:
     CHANGES
     example/example.cabal
diff --git a/src/Extract.hs b/src/Extract.hs
--- a/src/Extract.hs
+++ b/src/Extract.hs
@@ -33,7 +33,10 @@
 import           Coercion (Coercion)
 #endif
 
+#if __GLASGOW_HASKELL__ < 805
 import           FastString (unpackFS)
+#endif
+
 import           Digraph (flattenSCCs)
 
 import           System.Posix.Internals (c_getpid)
@@ -86,6 +89,11 @@
 mapMG = map
 #endif
 
+#if __GLASGOW_HASKELL__ < 805
+addQuoteInclude :: [String] -> [String] -> [String]
+addQuoteInclude includes new = new ++ includes
+#endif
+
 -- | Parse a list of modules.
 parse :: [String] -> IO [TypecheckedModule]
 parse args = withGhc args $ \modules_ -> withTempOutputDir $ do
@@ -151,7 +159,7 @@
         objectDir  = Just f
       , hiDir      = Just f
       , stubDir    = Just f
-      , includePaths = f : includePaths d
+      , includePaths = addQuoteInclude (includePaths d) [f]
       }
 
 -- | Extract all docstrings from given list of files/modules.
@@ -184,7 +192,7 @@
 
 -- | Extract all docstrings from given module.
 docStringsFromModule :: ParsedModule -> [(Maybe String, Located String)]
-docStringsFromModule mod = map (fmap (toLocated . fmap unpackDocString)) docs
+docStringsFromModule mod = map (fmap (toLocated . fmap unpackHDS)) docs
   where
     source   = (unLoc . pm_parsed_source) mod
 
@@ -197,8 +205,10 @@
     header  = [(Nothing, x) | Just x <- [hsmodHaddockModHeader source]]
 #if __GLASGOW_HASKELL__ < 710
     exports = [(Nothing, L loc doc) | L loc (IEDoc doc) <- concat (hsmodExports source)]
-#else
+#elif __GLASGOW_HASKELL__ < 805
     exports = [(Nothing, L loc doc) | L loc (IEDoc doc) <- maybe [] unLoc (hsmodExports source)]
+#else
+    exports = [(Nothing, L loc doc) | L loc (IEDoc _ doc) <- maybe [] unLoc (hsmodExports source)]
 #endif
     decls   = extractDocStrings (hsmodDecls source)
 
@@ -252,7 +262,11 @@
       -- Top-level documentation has to be treated separately, because it has
       -- no location information attached.  The location information is
       -- attached to HsDecl instead.
+#if __GLASGOW_HASKELL__ < 805
       DocD x -> select (fromDocDecl loc x)
+#else
+      DocD _ x -> select (fromDocDecl loc x)
+#endif
 
       _ -> (extractDocStrings decl, True)
 
@@ -267,6 +281,8 @@
       DocCommentNamed name doc -> (Just name, L loc doc)
       _                        -> (Nothing, L loc $ docDeclDoc x)
 
+#if __GLASGOW_HASKELL__ < 805
 -- | Convert a docstring to a plain string.
-unpackDocString :: HsDocString -> String
-unpackDocString (HsDocString s) = unpackFS s
+unpackHDS :: HsDocString -> String
+unpackHDS (HsDocString s) = unpackFS s
+#endif
