diff --git a/Language/Haskell/Modules/Imports.hs b/Language/Haskell/Modules/Imports.hs
--- a/Language/Haskell/Modules/Imports.hs
+++ b/Language/Haskell/Modules/Imports.hs
@@ -32,6 +32,7 @@
 import Language.Haskell.Modules.Util.Symbols (symbols)
 import System.Directory (createDirectoryIfMissing, getCurrentDirectory)
 import System.Exit (ExitCode(..))
+import System.FilePath ((</>))
 import System.Process (readProcessWithExitCode, showCommandForUser)
 
 #if MIN_VERSION_haskell_src_exts(1,14,0)
@@ -152,7 +153,14 @@
 -- their members are imported too.
 checkImports :: MonadClean m => ModuleInfo -> m ModuleResult
 checkImports info@(ModuleInfo (A.Module _ mh _ imports _) _ _ _) =
-    do let importsPath = maybe "Main" (\ (A.ModuleHead _ (A.ModuleName _ s) _ _) -> s) mh ++ ".imports"
+    do
+#if __GLASGOW_HASKELL__ >= 708
+       scratch <- scratchDir <$> getParams
+#else
+       let scratch = "."
+#endif
+       let importsPath = scratch </> maybe "Main" (\ (A.ModuleHead _ (A.ModuleName _ s) _ _) -> s) mh ++ ".imports"
+
        -- The .imports file will appear in the real current directory,
        -- ignore the source dir path.  This may change in future
        -- versions of GHC, see http://ghc.haskell.org/trac/ghc/ticket/7957
diff --git a/Language/Haskell/Modules/Params.hs b/Language/Haskell/Modules/Params.hs
--- a/Language/Haskell/Modules/Params.hs
+++ b/Language/Haskell/Modules/Params.hs
@@ -96,7 +96,7 @@
 -- instance of 'MonadClean'.
 runCleanT :: (MonadIO m, MonadBaseControl IO m) => CleanT m a -> m a
 runCleanT action =
-    withTempDirectory "." "scratch" $ \ scratch ->
+    withTempDirectory "." "hmm" $ \ scratch ->
     do (result, params) <- runStateT action (Params {scratchDir = scratch,
                                                      dryRun = False,
                                                      verbosity = 1,
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -4,7 +4,7 @@
 import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(buildDir))
 -- import Language.Haskell.Imports.Clean (cleanBuildImports)
 -- import Language.Haskell.Imports.Params (runParamsT)
-import System.Cmd (system)
+import System.Process (system)
 import System.Exit (ExitCode(ExitSuccess))
 import System.Directory (setCurrentDirectory, copyFile)
 import System.FilePath ((</>))
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,16 @@
+haskell-module-management (0.20) unstable; urgency=low
+
+  * GHC-7.8 honors the -outputdir flag for dumped imports, so look for
+    them there.
+
+ -- David Fox <dsf@seereason.com>  Wed, 16 Apr 2014 12:33:25 -0700
+
+haskell-module-management (0.19) unstable; urgency=low
+
+  * Increase the context-stack size from 20 to 60 to avoid crashing ghc-7.8.1
+
+ -- David Fox <dsf@seereason.com>  Mon, 31 Mar 2014 08:53:21 -0700
+
 haskell-module-management (0.18) unstable; urgency=low
 
   * Turn off the TransformListComp extension for parsing, it makes "group"
diff --git a/module-management.cabal b/module-management.cabal
--- a/module-management.cabal
+++ b/module-management.cabal
@@ -1,5 +1,5 @@
 Name:               module-management
-Version:            0.18
+Version:            0.20
 Synopsis:           Clean up module imports, split and merge modules
 Description:        Clean up module imports, split and merge modules.
 Homepage:           http://src.seereason.com/module-management
@@ -89,8 +89,8 @@
     cmdargs,
     lens
 
-  -- This prevents one of two failures: either a GHC out of memory error,
-  -- or an out of simplifier ticks error:
+  -- In ghc-7.6.3, -O0 prevents one of two failures: either a GHC out
+  -- of memory error, or an out of simplifier ticks error:
   -- ghc: panic! (the 'impossible' happened)
   --   (GHC version 7.6.3 for x86_64-unknown-linux):
   -- 	Simplifier ticks exhausted
@@ -99,7 +99,8 @@
   --     If you need to do this, let GHC HQ know, and what factor you needed
   --     To see detailed counts use -ddump-simpl-stats
   --     Total ticks: 1186241
-  ghc-options: -O0
+  -- In 7.8.1 increasing the context stack size from 20 to 60 seems necessary.
+  ghc-options: -O0 -fcontext-stack=60
 
 Executable tests
   Main-is: Tests.hs
diff --git a/testdata.tar.gz b/testdata.tar.gz
Binary files a/testdata.tar.gz and b/testdata.tar.gz differ
