diff --git a/Build.hs b/Build.hs
--- a/Build.hs
+++ b/Build.hs
@@ -59,7 +59,7 @@
             args <- needArgs
             needPkgs
             -- Use the default o/hi settings so we can parse the makefile properly
-            () <- cmd "ghc -M -include-pkg-deps -dep-makefile" [out] args "-odir. -hidir. -hisuf=_hi_ -osuf=_o_"
+            () <- cmd "ghc -M -include-pkg-deps -dep-suffix='' -dep-makefile" [out] args "-odir. -hidir. -hisuf=_hi_ -osuf=_o_"
             mk <- liftIO $ makefile out
             need $ Map.elems $ source mk
         needMk <- do cache <- newCache (\x -> do need [x]; liftIO $ makefile x); return $ cache $ prefix <.> "makefile"
@@ -72,7 +72,8 @@
         prefix <.> "result" *> \out -> do
             args <- needArgs
             mk <- needMk
-            let output = fmap outputFile $ Map.lookup (Module ["Main"] False) $ source mk
+            let output = if "-no-link" `elem` argsGHC then Nothing
+                         else fmap outputFile $ Map.lookup (Module ["Main"] False) $ source mk
 
             -- if you don't specify an odir/hidir then impossible to reverse from the file name to the module
             let exec = when (isJust output || threads == 1) $
diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,8 @@
 Changelog for ghc-make
 
+0.2.1
+    Support GHC-7.8, which requires -dep-suffix
+    #3, support -no-link flag
 0.2
     Support the -hidir flag in conjunction with -j
     Support the -o flag in conjunction with -j
diff --git a/ghc-make.cabal b/ghc-make.cabal
--- a/ghc-make.cabal
+++ b/ghc-make.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.8
 build-type:         Simple
 name:               ghc-make
-version:            0.2
+version:            0.2.1
 license:            BSD3
 license-file:       LICENSE
 category:           Development
