diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for GHCiD
 
+0.3.4
+    #21, if you aren't waiting for any files, exit
 0.3.3
     #21, if the root file is missing, report an error
     #20, avoid an O(n^2) nub
diff --git a/ghcid.cabal b/ghcid.cabal
--- a/ghcid.cabal
+++ b/ghcid.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.10
 build-type:         Simple
 name:               ghcid
-version:            0.3.3
+version:            0.3.4
 license:            BSD3
 license-file:       LICENSE
 category:           Development
diff --git a/src/Ghcid.hs b/src/Ghcid.hs
--- a/src/Ghcid.hs
+++ b/src/Ghcid.hs
@@ -14,6 +14,7 @@
 import qualified System.Console.Terminal.Size as Term
 import System.Console.CmdArgs
 import System.Directory
+import System.Exit
 import System.IO
 import System.IO.Error
 import System.Time.Extra
@@ -79,7 +80,11 @@
             let outFill msg = output $ take height $ msg ++ replicate height ""
             outFill $ prettyOutput height
                 [m{loadMessage = concatMap (chunksOfWord width (width `div` 5)) $ loadMessage m} | m@Message{} <- load ++ warn]
-            reason <- awaitFiles start $ nub $ modsLoad ++ modsActive
+            let wait = nub $ modsLoad ++ modsActive
+            when (null wait) $ do
+                putStrLn $ "No files loaded, probably did not start GHCi.\nCommand: " ++ command
+                exitFailure
+            reason <- awaitFiles start wait
             outFill $ "Reloading..." : map ("  " ++) reason
             load2 <- reload ghci
             fire load2 [m | m@Message{..} <- warn ++ load, loadSeverity == Warning]
