diff --git a/Config/Dyre.hs b/Config/Dyre.hs
--- a/Config/Dyre.hs
+++ b/Config/Dyre.hs
@@ -111,6 +111,7 @@
     , showError    = undefined
     , hidePackages = []
     , ghcOpts      = []
+    , forceRecomp  = True
     , statusOut    = hPutStrLn stderr
     }
 
diff --git a/Config/Dyre/Compile.hs b/Config/Dyre/Compile.hs
--- a/Config/Dyre/Compile.hs
+++ b/Config/Dyre/Compile.hs
@@ -49,12 +49,13 @@
 
 -- | Assemble the arguments to GHC so everything compiles right.
 makeFlags :: Params cfgType -> FilePath -> FilePath -> FilePath -> IO [String]
-makeFlags Params{ghcOpts = flags, hidePackages = hides}
+makeFlags Params{ghcOpts = flags, hidePackages = hides, forceRecomp = force}
           cfgFile tmpFile cacheDir = do
     currentDir <- getCurrentDirectory
-    return . concat $ [ ["-v0", "-fforce-recomp", "-i" ++ currentDir]
+    return . concat $ [ ["-v0", "-i" ++ currentDir]
                       , ["-outputdir", cacheDir]
                       , prefix "-hide-package" hides, flags
                       , ["--make", cfgFile, "-o", tmpFile]
+                      , if force then ["-fforce-recomp"] else []
                       ]
   where prefix y xs = concat . map (\x -> [y,x]) $ xs
diff --git a/Config/Dyre/Params.hs b/Config/Dyre/Params.hs
--- a/Config/Dyre/Params.hs
+++ b/Config/Dyre/Params.hs
@@ -36,6 +36,8 @@
     -- ^ Packages that need to be hidden during compilation
     , ghcOpts      :: [String]
     -- ^ Miscellaneous GHC compilation settings go here
+    , forceRecomp  :: Bool
+    -- ^ Should GHC be given the -fforce-recomp flag?
     , statusOut    :: String -> IO ()
     -- ^ A status output function. Will be called with messages
     --   when Dyre recompiles or launches anything. A good value
diff --git a/dyre.cabal b/dyre.cabal
--- a/dyre.cabal
+++ b/dyre.cabal
@@ -1,5 +1,5 @@
 name:          dyre
-version:       0.7.2
+version:       0.7.3
 category:      Development, Configuration
 synopsis:      Dynamic reconfiguration in Haskell
 
