diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/doctest-discover.cabal b/doctest-discover.cabal
--- a/doctest-discover.cabal
+++ b/doctest-discover.cabal
@@ -1,5 +1,5 @@
 name:                doctest-discover
-version:             0.1.0.8
+version:             0.1.0.9
 synopsis:            Easy way to run doctests via cabal
 description:         doctest-discover provides an easy way to run doctests via cabal
 license:             PublicDomain
diff --git a/src/Config.hs b/src/Config.hs
--- a/src/Config.hs
+++ b/src/Config.hs
@@ -8,22 +8,24 @@
 
 data Config = Config {
     ignore :: Maybe [String],
-    sourceFolders :: Maybe [String]
+    sourceFolders :: Maybe [String],
+    doctestOptions :: Maybe [String]
 } deriving (Show)
 
 instance FromJSON Config where
     parseJSON (Object v) = 
         Config <$> 
         (v .:? "ignore") <*>
-        (v .:? "sourceFolders")
+        (v .:? "sourceFolders") <*>
+        (v .:? "doctestOptions")
 
 -- | Parses config json as string to the Config type
 --
 -- >>> config "{\"ignore\": [] }"
--- Just (Config {ignore = Just [], sourceFolders = Nothing})
+-- Just (Config {ignore = Just [], sourceFolders = Nothing, doctestOptions = Nothing})
 --
 -- >>> config "{\"ignore\": [\"Foo.hs\"] }"
--- Just (Config {ignore = Just ["Foo.hs"], sourceFolders = Nothing})
+-- Just (Config {ignore = Just ["Foo.hs"], sourceFolders = Nothing, doctestOptions = Nothing})
 --
 -- >>> config "{\"ignore\": [1,2,3] }"
 -- Nothing
@@ -32,7 +34,10 @@
 -- Nothing
 --
 -- >>> config "{\"sourceFolders\": [\"src\"] }"
--- Just (Config {ignore = Nothing, sourceFolders = Just ["src"]})
+-- Just (Config {ignore = Nothing, sourceFolders = Just ["src"], doctestOptions = Nothing})
+--
+-- >>> config "{\"doctestOptions\": [\"--some-option\"] }"
+-- Just (Config {ignore = Nothing, sourceFolders = Nothing, doctestOptions = Just ["--some-option"]})
 --
 config :: String -> Maybe Config
 config json = decode (B.pack json) :: Maybe Config
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -4,6 +4,7 @@
 import Control.Applicative 
 import Control.Monad
 import Data.Maybe (fromMaybe)
+import Data.List (sort)
 import Runner
 import Config
 import System.Directory
@@ -16,9 +17,7 @@
                               (configFile : _) -> readFile configFile
                               _ -> return ""
     customConfiguration <- config <$> configFileContents
-    let sources = case customConfiguration of
-                    Just (Config _ (Just sourceFolders)) -> sourceFolders
-                    _ -> ["src"]
+    let sources = fromMaybe ["src"] $ customConfiguration >>= sourceFolders
     files <- sequence $ map getAbsDirectoryContents sources
     let testDriverFileContents = driver (concat files) customConfiguration
     writeFile dst testDriverFileContents
@@ -39,4 +38,4 @@
         if isDir
             then getAbsDirectoryContents canonicalized
             else return [canonicalized]
-    return $ concat paths'
+    return $ sort $ concat paths'
diff --git a/src/Runner.hs b/src/Runner.hs
--- a/src/Runner.hs
+++ b/src/Runner.hs
@@ -1,8 +1,12 @@
+{-# LANGUAGE
+    RecordWildCards
+  #-}
 module Runner (
     driver
 ) where
 
 import Data.List
+import Data.Maybe
 import Config
 import System.FilePath.Posix
 
@@ -21,22 +25,28 @@
 -- >>> generateConfig ["foo.hs", "bar.hs", "baz.qux"] Nothing
 -- ["-isrc","foo.hs","bar.hs"]
 --
--- >>> let config = Just (Config (Just ["bar.hs"]) Nothing)
+-- >>> let config = Just (Config (Just ["bar.hs"]) Nothing Nothing)
 -- >>> generateConfig ["foo.hs", "bar.hs", "baz.qux"] config
 -- ["-isrc","foo.hs"]
 --
--- >>> let config = Just (Config Nothing (Just ["qux"]))
+-- >>> let config = Just (Config Nothing (Just ["qux"]) Nothing)
 -- >>> generateConfig ["foo.hs", "bar.hs", "baz.qux"] config
 -- ["-iqux","foo.hs","bar.hs"]
 --
--- >>> let config = Just (Config (Just ["bar.hs"]) (Just ["qux"]))
+-- >>> let config = Just (Config (Just ["bar.hs"]) (Just ["qux"]) Nothing)
 -- >>> generateConfig ["foo.hs", "bar.hs", "baz.qux"] config
 -- ["-iqux","foo.hs"]
 --
+-- >>> let config = Just (Config (Just ["bar.hs"]) (Just ["qux"]) (Just ["-some", "--doctest options"]))
+-- >>> generateConfig ["foo.hs", "bar.hs", "baz.qux"] config
+-- ["-iqux","foo.hs","-some","--doctest","options"]
+--
 generateConfig :: [FilePath] -> Maybe Config -> [String]
-generateConfig files (Just (Config Nothing (Just sourceFolders))) = ((++) (map ("-i"++) sourceFolders) . notCurrentAndParent . filterHaskellSources) files
-generateConfig files (Just (Config (Just ignoreList) Nothing)) = ((:) "-isrc" . filter (`notElem` ignoreList) . notCurrentAndParent . filterHaskellSources) files
-generateConfig files (Just (Config (Just ignoreList) (Just sourceFolders))) = ((++) (map ("-i"++) sourceFolders) . filter (`notElem` ignoreList) . notCurrentAndParent . filterHaskellSources) files
+generateConfig files (Just Config {..})
+    =  concat [ maybe ["-isrc"] (map ("-i" ++)) $ sourceFolders
+              , nub . filter (`notElem` fromMaybe [] ignore) . notCurrentAndParent . filterHaskellSources $ files
+              ]
+    ++ maybe [] (concat . map words) doctestOptions
 generateConfig files _ = ((:) "-isrc" . notCurrentAndParent . filterHaskellSources) files
 
 -- | Filters out current and parent directories 
diff --git a/test/Doctest-Main.hs b/test/Doctest-Main.hs
--- a/test/Doctest-Main.hs
+++ b/test/Doctest-Main.hs
@@ -1,1 +1,1 @@
-{-# OPTIONS_GHC -F -pgmF doctest-discover #-}
+{-# OPTIONS_GHC -F -pgmF doctest-discover -optF config.json #-}
