diff --git a/fay.cabal b/fay.cabal
--- a/fay.cabal
+++ b/fay.cabal
@@ -1,5 +1,5 @@
 name:                fay
-version:             0.14.0.0
+version:             0.14.1.0
 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,
@@ -21,9 +21,11 @@
                      .
                      /Release Notes/
                      .
+                     * Fix package resolving for nested dirs.
+                     .
                      * Update test-cases for serialization.
                      .
-                     * ce7a34a Fix fully specified parametrized type serialization.
+                     * Fix fully specified parametrized type serialization.
                      .
                      * Full documentation.
                      .
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
@@ -7,7 +7,9 @@
 import Fay.Types
 import Fay.Compiler.Config
 
+import Control.Applicative
 import Control.Monad
+import Control.Monad.Extra
 import Data.List
 import Data.Version
 import GHC.Paths
@@ -45,8 +47,9 @@
   exists <- doesDirectoryExist path
   if not exists
      then return False
-     else do files <- getDirectoryContents path
-             return $ any ((==".hs") . takeExtension) files
+     else do files <- filter (\v -> v /= "." && v /= "..") <$> getDirectoryContents path
+             sub   <- anyM doesSourceDirExist $ map (path </>) files
+             return $ any ((==".hs") . takeExtension) files || sub
 
 -- | Describe the given package.
 describePackage :: Maybe FilePath -> String -> IO String
