diff --git a/Cabal-syntax/src/Language/Haskell/Extension.hs b/Cabal-syntax/src/Language/Haskell/Extension.hs
index 3eecbe9a4c85af2290b6de8d5f0c7f699c07625f..4f7601a39d9062abba28a4bad42bec83a4709bc2 100644
--- a/Cabal-syntax/src/Language/Haskell/Extension.hs
+++ b/Cabal-syntax/src/Language/Haskell/Extension.hs
@@ -77,7 +77,7 @@ instance Pretty Language where
   pretty other                   = Disp.text (show other)
 
 instance Parsec Language where
-  parsec = classifyLanguage <$> P.some P.anyChar
+  parsec = classifyLanguage <$> P.munch1 isAlphaNum
 
 classifyLanguage :: String -> Language
 classifyLanguage = \str -> case lookup str langTable of
diff --git a/cabal-testsuite/PackageTests/Regression/T8507/Foo.hs b/cabal-testsuite/PackageTests/Regression/T8507/Foo.hs
new file mode 100644
index 0000000000000000000000000000000000000000..614d2790c839bf2e048440d634069791ebcb123c
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Regression/T8507/Foo.hs
@@ -0,0 +1,4 @@
+module Foo where
+
+foo :: a
+foo = undefined
diff --git a/cabal-testsuite/PackageTests/Regression/T8507/cabal.out b/cabal-testsuite/PackageTests/Regression/T8507/cabal.out
new file mode 100644
index 0000000000000000000000000000000000000000..0c53c8b3d30b8188da375d2b6ee5f0bde0d1f510
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Regression/T8507/cabal.out
@@ -0,0 +1,8 @@
+# cabal v2-build
+Resolving dependencies...
+Build profile: -w ghc-<GHCVER> -O1
+In order, the following will be built:
+ - pkg-0 (lib) (first run)
+Configuring library for pkg-0..
+Preprocessing library for pkg-0..
+Building library for pkg-0..
diff --git a/cabal-testsuite/PackageTests/Regression/T8507/cabal.project b/cabal-testsuite/PackageTests/Regression/T8507/cabal.project
new file mode 100644
index 0000000000000000000000000000000000000000..8834d04402a2a77a2fa0c4f718102dc0b450cbce
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Regression/T8507/cabal.project
@@ -0,0 +1,2 @@
+packages:
+  ./
diff --git a/cabal-testsuite/PackageTests/Regression/T8507/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T8507/cabal.test.hs
new file mode 100644
index 0000000000000000000000000000000000000000..58266256b471e7e002bdec13430571828cadf2cd
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Regression/T8507/cabal.test.hs
@@ -0,0 +1,6 @@
+import Test.Cabal.Prelude
+
+-- Issue #8507: trailing space in `default-language` should not make
+-- `cabal build` complain.
+main = cabalTest $ cabal "v2-build" ["all"]
+
diff --git a/cabal-testsuite/PackageTests/Regression/T8507/pkg.cabal b/cabal-testsuite/PackageTests/Regression/T8507/pkg.cabal
new file mode 100644
index 0000000000000000000000000000000000000000..80fb8e284aee035fffe207e6cb6ac69a3b7f6628
--- /dev/null
+++ b/cabal-testsuite/PackageTests/Regression/T8507/pkg.cabal
@@ -0,0 +1,14 @@
+cabal-version: 3.0
+name: pkg
+synopsis: synopsis
+description: description
+version: 0
+category: example
+maintainer: none@example.com
+license: GPL-3.0-or-later
+
+library
+  exposed-modules: Foo,
+  build-depends: base == 4.*
+  default-language: Haskell2010    
+    -- Note whitespace after “Haskell 2010”.
diff --git a/fix-whitespace.yaml b/fix-whitespace.yaml
index bbec61f156f21812ed0c1d292c2b9d1e72350b82..d96e84188b16535ada900573e6602f638daecec4 100644
--- a/fix-whitespace.yaml
+++ b/fix-whitespace.yaml
@@ -92,6 +92,7 @@ excluded-files:
   - Cabal-syntax/src/Distribution/Fields/Lexer.hs
   - Cabal-tests/tests/ParserTests/warnings/tab.cabal
   - Cabal-tests/tests/ParserTests/warnings/utf8.cabal
+  - cabal-testsuite/PackageTests/Regression/T8507/pkg.cabal
 
   # These also contain tabs that affect the golden value:
   # Could be removed from exceptions, but then the tab warning