diff -rN -u old-darcs-unstable/src/Darcs/Commands/Add.lhs new-darcs-unstable/src/Darcs/Commands/Add.lhs
--- old-darcs-unstable/src/Darcs/Commands/Add.lhs	2010-08-24 13:34:04.222779160 +0300
+++ new-darcs-unstable/src/Darcs/Commands/Add.lhs	2010-08-24 13:34:04.426779393 +0300
@@ -45,12 +45,13 @@
                    , doesFileReallyExist, treeHas, treeHasDir, treeHasAnycase )
 import Darcs.RepoPath ( SubPath, toFilePath, simpleSubPath, toPath )
 import Darcs.Repository.Prefs ( darcsdirFilter, boringFileFilter )
-import Data.Maybe ( maybeToList, fromJust )
+import Data.Maybe ( maybeToList, fromJust, catMaybes )
 import System.FilePath.Posix ( takeDirectory, (</>) )
 import qualified System.FilePath.Windows as WindowsFilePath
 import Printer( text )
 
 #include "gadts.h"
+#include "impossible.h"
 
 addDescription :: String
 addDescription = "Add one or more new files or directories."
@@ -252,7 +253,7 @@
  "safe, it is not clear to what extent it is beneficial.\n"
 
 expandDirs :: [SubPath] -> IO [SubPath]
-expandDirs fs = liftM (map (fromJust . simpleSubPath)) (concat `fmap` mapM (expandOne . toPath) fs)
+expandDirs fs = liftM (catMaybes . map simpleSubPath) (concat `fmap` mapM (expandOne . toPath) fs)
 
 expandOne :: FilePath -> IO [FilePath]
 expandOne "" = listFiles
