diff --git a/darcs.cabal b/darcs.cabal
--- a/darcs.cabal
+++ b/darcs.cabal
@@ -1,5 +1,5 @@
 Name:           darcs
-version:        2.5.1
+version:        2.5.2
 License:        GPL
 License-file:   COPYING
 Author:         David Roundy <droundy@darcs.net>, <darcs-users@darcs.net>
@@ -172,7 +172,7 @@
                      extensible-exceptions >= 0.1 && < 0.2,
                      regex-compat >= 0.71 && < 0.94,
                      mtl          >= 1.0 && < 2.1,
-                     parsec       >= 2.0 && < 3.1,
+                     parsec       >= 2.0 && < 3.2,
                      html         == 1.0.*,
                      filepath     >= 1.1.0.0 && < 1.3.0.0,
                      haskeline    >= 0.6.2.2 && < 0.7,
@@ -377,7 +377,7 @@
                      extensible-exceptions >= 0.1 && < 0.2,
                      regex-compat >= 0.71 && < 0.94,
                      mtl          >= 1.0 && < 2.1,
-                     parsec       >= 2.0 && < 3.1,
+                     parsec       >= 2.0 && < 3.2,
                      html         == 1.0.*,
                      filepath     >= 1.1.0.0 && < 1.3.0.0,
                      haskeline    >= 0.6.2.2 && < 0.7,
@@ -525,7 +525,7 @@
                    extensible-exceptions >= 0.1 && < 0.2,
                    regex-compat >= 0.71 && < 0.94,
                    mtl          >= 1.0 && < 2.1,
-                   parsec       >= 2.0 && < 3.1,
+                   parsec       >= 2.0 && < 3.2,
                    html         == 1.0.*,
                    filepath     >= 1.1.0.0 && < 1.3.0.0,
                    haskeline    >= 0.6.2.2 && < 0.7,
@@ -621,7 +621,7 @@
                      extensible-exceptions >= 0.1 && < 0.2,
                      regex-compat >= 0.71 && < 0.94,
                      mtl          >= 1.0 && < 2.1,
-                     parsec       >= 2.0 && < 3.1,
+                     parsec       >= 2.0 && < 3.2,
                      html         == 1.0.*,
                      filepath     >= 1.1.0.0 && < 1.3.0.0,
                      QuickCheck   >= 2.1.0.0,
diff --git a/release/distributed-context b/release/distributed-context
--- a/release/distributed-context
+++ b/release/distributed-context
@@ -1,1 +1,1 @@
-Just "\nContext:\n\n[TAG 2.5.1\nGanesh Sittampalam <ganesh@earth.li>**20110210233529\n Ignore-this: 9e4daeb4ceaf1c2743235c68564c519b\n] \n"
+Just "\nContext:\n\n[TAG 2.5.2\nGanesh Sittampalam <ganesh@earth.li>**20110313223504\n Ignore-this: f3f57f3eacb2fdd4cdafc581c05058e3\n] \n"
diff --git a/src/Darcs/Commands/Add.lhs b/src/Darcs/Commands/Add.lhs
--- a/src/Darcs/Commands/Add.lhs
+++ b/src/Darcs/Commands/Add.lhs
@@ -195,18 +195,19 @@
             add_failure = (cur, Nothing, Nothing)
             trypatch :: FreeLeft (FL Prim) -> IO (Tree IO, Maybe (FreeLeft (FL Prim)), Maybe FilePath)
             trypatch p = do Sealed p' <- return $ unFreeLeft p
-                            tree <- applyToTree p' cur
-                            putVerbose opts . text $ msgAdding msgs++" '"++f++"'"
-                            return (tree, Just p, Nothing)
-                          `catch` \_ -> do
-                            err <- parent_error
-                            putWarning opts . text $ msgSkipping msgs ++ " '" ++ f ++ "' ... " ++ err
+                            ok <- treeHasDir cur parentdir
+                            if ok
+                             then do
+                                   tree <- applyToTree p' cur
+                                   putVerbose opts . text $ msgAdding msgs++" '"++f++"'"
+                                   return (tree, Just p, Nothing)
+                             else do
+                                   putWarning opts . text $ msgSkipping msgs ++ " '" ++ f ++ "' ... couldn't add parent directory '" ++ parentdir ++ "' to repository"
+                                   return (cur, Nothing, Nothing)
+                          `catch` \e -> do
+                            putWarning opts . text $ msgSkipping msgs ++ " '" ++ f ++ "' ... " ++ show e
                             return (cur, Nothing, Nothing)
             parentdir = takeDirectory f
-            have_parentdir = treeHasDir cur parentdir
-            parent_error = have_parentdir >>= \x -> return $
-                             if x then ""
-                                  else "couldn't add parent directory '"++parentdir++"' to repository."
             myadddir d = if gotFancyMoveAdd
                          then freeGap (adddir (d++"-"++date) :>:
                                        move (d++"-"++date) d :>: NilFL)
diff --git a/tests/issue2049-file-in-boring-dir.sh b/tests/issue2049-file-in-boring-dir.sh
new file mode 100644
--- /dev/null
+++ b/tests/issue2049-file-in-boring-dir.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+## Test for issue2049 - adding files inside a boring directory
+##
+## Copyright (C) 2011 Iago Abal, Ganesh Sittampalam
+##
+## Permission is hereby granted, free of charge, to any person
+## obtaining a copy of this software and associated documentation
+## files (the "Software"), to deal in the Software without
+## restriction, including without limitation the rights to use, copy,
+## modify, merge, publish, distribute, sublicense, and/or sell copies
+## of the Software, and to permit persons to whom the Software is
+## furnished to do so, subject to the following conditions:
+##
+## The above copyright notice and this permission notice shall be
+## included in all copies or substantial portions of the Software.
+##
+## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+## BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+## ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+## CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+## SOFTWARE.
+
+. ../tests/lib                  # Load some portability helpers.
+rm -rf R
+darcs init      --repo R        # Create our test repos.
+
+cd R
+mkdir foo~
+touch foo~/a.txt
+not darcs add foo~/a.txt
