diff --git a/Language/Haskell/GhcImportedFrom.hs b/Language/Haskell/GhcImportedFrom.hs
--- a/Language/Haskell/GhcImportedFrom.hs
+++ b/Language/Haskell/GhcImportedFrom.hs
@@ -103,6 +103,9 @@
 
 import qualified Documentation.Haddock as Haddock
 
+import Control.Exception
+import Control.Monad.Catch
+
 import qualified DynFlags()
 
 #if __GLASGOW_HASKELL__ >= 708
@@ -164,7 +167,9 @@
 
 executeFallibly' :: String -> [String] -> IO (Maybe (String, String))
 executeFallibly' cmd args = do
-    x <- executeFallibly (pipeoe intoLazyBytes intoLazyBytes) (proc cmd args)
+    x <- (executeFallibly (pipeoe intoLazyBytes intoLazyBytes) (proc cmd args))
+         `catchIOError` -- FIXME Later, propagate the error so we can log it. Top level type should be an Either or something, not a Maybe.
+         (\e -> return $ Left $ show e)
 
     return $ case x of
         Left e              -> Nothing
@@ -215,7 +220,7 @@
 
             let result = case x of
                             Nothing         -> []
-                            Just (_, x')    -> filter ("--interactive" `isPrefixOf`) . lines $ x'
+                            Just (x', _)    -> filter ("--interactive" `isPrefixOf`) . lines $ x'
 
             return $ case result of
                 [r] -> Just $ filterOpts (words r) ++ [stackSnapshotPkgDb', stackLocalPkgDb']
@@ -231,7 +236,7 @@
 
     let result = case x of
                     Nothing         -> []
-                    Just (_, x')    -> filter ("--interactive" `isPrefixOf`) . lines $ x'
+                    Just (x', _)    -> filter ("--interactive" `isPrefixOf`) . lines $ x'
 
     return $ case result of
         [r] -> Just $ filterOpts (words r)
@@ -354,7 +359,10 @@
 --      -XHaskell98
 --      ./renamePhotos.hs
 getGhcOptionsViaCabalOrStack :: IO [String]
-getGhcOptionsViaCabalOrStack = fromMaybe [] <$> shortcut [getGhcOptionsViaStack, getGhcOptionsViaCabalRepl]
+getGhcOptionsViaCabalOrStack = do
+    x <- fromMaybe [] <$> shortcut [getGhcOptionsViaStack, getGhcOptionsViaCabalRepl]
+    putStrLn $ "getGhcOptionsViaCabalOrStack: " ++ show x
+    return x
 
 -- | Add user-supplied GHC options.
 modifyDFlags :: [String] -> DynFlags -> IO ([GHCOption], DynFlags)
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+2016-03-30 v0.3.0.2
+
+* Bugfix to the bugfix.
+
 2016-03-30 v0.3.0.1
 
 * Bugfix: use process-streaming to avoid deadlock on Fedora 23.
diff --git a/ghc-imported-from.cabal b/ghc-imported-from.cabal
--- a/ghc-imported-from.cabal
+++ b/ghc-imported-from.cabal
@@ -1,5 +1,5 @@
 name:                ghc-imported-from
-version:             0.3.0.1
+version:             0.3.0.2
 synopsis:            Find the Haddock documentation for a symbol.
 description:         Given a Haskell module and symbol, determine the URL to the Haddock documentation
                      for that symbol.
@@ -46,6 +46,7 @@
                  , haddock-api
                  , hspec
                  , hspec-discover
+                 , exceptions
     if impl(ghc < 7.7)
       Build-Depends:  Cabal >= 1.10 && < 1.17
     else
@@ -89,6 +90,7 @@
                , haddock-api
                , hspec
                , hspec-discover
+               , exceptions
 
   if impl(ghc < 7.7)
       Build-Depends:  Cabal >= 1.10 && < 1.17
@@ -125,6 +127,7 @@
                       , optparse-applicative
                       , hspec
                       , hspec-discover
+                      , exceptions
                       , haddock-api
   if impl(ghc < 7.7)
       Build-Depends:  Cabal >= 1.10 && < 1.17
