diff --git a/Cabal.cabal b/Cabal.cabal
index 77acbdc035158424e2964a5dbf2291539f8b4cbe..33760e3b09a36e118ddb8793442f507a8892a84b 100644
--- a/Cabal.cabal
+++ b/Cabal.cabal
@@ -86,7 +86,6 @@ Library
   Other-Modules:
         Distribution.GetOpt,
         Distribution.Compat.TempFile
-        Distribution.Compat.Char
         Distribution.Compat.Exception
         Distribution.Simple.GHC.Makefile
 
diff --git a/Distribution/ParseUtils.hs b/Distribution/ParseUtils.hs
index 0f2a7c8a3dc9323b63dc954c5a28afe5281db6e7..b99b2bf24e217aa3bfa6ffa75a2ef7981fe2aa6e 100644
--- a/Distribution/ParseUtils.hs
+++ b/Distribution/ParseUtils.hs
@@ -72,7 +72,7 @@ import Distribution.Simple.Utils (intercalate, lowercase)
 import Language.Haskell.Extension (Extension)
 
 import Text.PrettyPrint.HughesPJ hiding (braces)
-import Data.Char (isSpace, isUpper, toLower, isAlphaNum, isSymbol, isDigit)
+import Data.Char (isSpace, isUpper, toLower, isAlphaNum, isDigit)
 import Data.Maybe	(fromMaybe)
 import Data.Tree as Tree (Tree(..), flatten)
 import System.FilePath (normalise)
@@ -546,7 +546,7 @@ parseBuildToolName = do ns <- sepBy1 component (ReadP.char '-')
                         return (intercalate "-" ns)
   where component = do
           cs <- munch1 (\c -> isAlphaNum c
-                           || isSymbol   c
+                           || c == '+'
                            || c == '_'
                            && c /= '-')
           if all isDigit cs then pfail else return cs