diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,11 @@
 
 See full history at: <https://github.com/faylang/fay/commits>
 
-##### 0.21.0.1 (2014-10-12)
+#### 0.21.0.2 (2014-10-19)
+
+* Fallback to ghc and ghc-pkg in PATH if not available from GHC.Paths
+
+#### 0.21.0.1 (2014-10-12)
 
 * Update to `optparse-applicative == 0.11.*`
 
diff --git a/fay.cabal b/fay.cabal
--- a/fay.cabal
+++ b/fay.cabal
@@ -1,5 +1,5 @@
 name:                fay
-version:             0.21.0.1
+version:             0.21.0.2
 synopsis:            A compiler for Fay, a Haskell subset that compiles to JavaScript.
 description:         Fay is a proper subset of Haskell which is type-checked
                      with GHC, and compiled to JavaScript. It is lazy, pure, has a Fay monad,
diff --git a/src/Fay/Compiler/Packages.hs b/src/Fay/Compiler/Packages.hs
--- a/src/Fay/Compiler/Packages.hs
+++ b/src/Fay/Compiler/Packages.hs
@@ -55,7 +55,8 @@
 -- | Describe the given package.
 describePackage :: Maybe FilePath -> String -> IO String
 describePackage db name = do
-  result <- readAllFromProcess ghc_pkg args ""
+  exists <- doesFileExist ghc_pkg
+  result <- readAllFromProcess (if exists then ghc_pkg else "ghc-pkg") args ""
   case result of
     Left  (err,out) -> error $ "ghc-pkg describe error:\n" ++ err ++ "\n" ++ out
     Right (_err,out) -> return out
diff --git a/src/Fay/Compiler/Typecheck.hs b/src/Fay/Compiler/Typecheck.hs
--- a/src/Fay/Compiler/Typecheck.hs
+++ b/src/Fay/Compiler/Typecheck.hs
@@ -11,6 +11,8 @@
 
 import qualified GHC.Paths             as GHCPaths
 
+import           System.Directory
+
 -- | Call out to GHC to type-check the file.
 typecheck :: Config -> FilePath -> IO (Either CompileError String)
 typecheck cfg fp = do
@@ -37,7 +39,8 @@
           , "Language.Fay.DummyMain"
           , "-i" ++ intercalate ":" includeDirs
           , fp ] ++ ghcPackageDbArgs ++ wallF ++ map ("-package " ++) packages
-  res <- readAllFromProcess GHCPaths.ghc flags ""
+  exists <- doesFileExist GHCPaths.ghc
+  res <- readAllFromProcess (if exists then GHCPaths.ghc else "ghc") flags ""
   either (return . Left . GHCError . fst) (return . Right . fst) res
    where
     wallF | configWall cfg = ["-Wall"]
