diff --git a/mega-sdist.cabal b/mega-sdist.cabal
--- a/mega-sdist.cabal
+++ b/mega-sdist.cabal
@@ -1,5 +1,5 @@
 Name:                mega-sdist
-Version:             0.2.0.8
+Version:             0.2.0.9
 Synopsis:            Handles uploading to Hackage from mega repos
 Description:         See README.md
 Homepage:            https://github.com/snoyberg/mega-sdist
@@ -27,6 +27,7 @@
                      , containers
                      , text
                      , network
+                     , directory
 
 source-repository head
   type:     git
diff --git a/mega-sdist.hs b/mega-sdist.hs
--- a/mega-sdist.hs
+++ b/mega-sdist.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 import Prelude hiding (FilePath, getContents)
 import System.Environment (getArgs)
+import System.Directory (doesDirectoryExist)
 import Network.HTTP.Conduit
 import Network.HTTP.Types (status200, status404, status502)
 import Filesystem
@@ -11,7 +12,7 @@
 import qualified Data.Text.Lazy as TL
 import qualified Data.Map as Map
 import qualified Data.Set as Set
-import Control.Monad (when, forM_, forM)
+import Control.Monad (when, forM_, forM, filterM)
 import qualified Data.ByteString.Lazy as L
 import qualified Codec.Archive.Tar as Tar
 import Data.Conduit.Zlib (ungzip)
@@ -59,7 +60,7 @@
     exists <- isFile "sources.txt"
     dirs <-
         if exists
-            then fmap lines $ Prelude.readFile "sources.txt"
+            then fmap lines (Prelude.readFile "sources.txt") >>= filterM doesDirectoryExist
             else return ["."]
     shelly $ do
         rm_rf "tarballs"
