diff --git a/Misc/NEWS.d/next/Windows/2024-02-08-14-48-15.gh-issue-115119.qMt32O.rst b/Misc/NEWS.d/next/Windows/2024-02-08-14-48-15.gh-issue-115119.qMt32O.rst
new file mode 100644
index 00000000000000..f95fed1084cf4f
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2024-02-08-14-48-15.gh-issue-115119.qMt32O.rst
@@ -0,0 +1,3 @@
+Switched from vendored ``libmpdecimal`` code to a separately-hosted external
+package in the ``cpython-source-deps`` repository when building the
+``_decimal`` module.
diff --git a/PCbuild/_decimal.vcxproj b/PCbuild/_decimal.vcxproj
index 490d7df87eb1c6..e5c156402060db 100644
--- a/PCbuild/_decimal.vcxproj
+++ b/PCbuild/_decimal.vcxproj
@@ -98,46 +98,46 @@
CONFIG_32;ANSI;%(PreprocessorDefinitions)
CONFIG_64;ANSI;%(PreprocessorDefinitions)
CONFIG_64;MASM;%(PreprocessorDefinitions)
- ..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories)
+ ..\Modules\_decimal;$(mpdecimalDir)\libmpdec;%(AdditionalIncludeDirectories)
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
true
true
true
diff --git a/PCbuild/_decimal.vcxproj.filters b/PCbuild/_decimal.vcxproj.filters
index 0cbd3d0736c241..03ad81bb9ee130 100644
--- a/PCbuild/_decimal.vcxproj.filters
+++ b/PCbuild/_decimal.vcxproj.filters
@@ -21,49 +21,49 @@
Header Files
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
-
+
Header Files\libmpdec
@@ -71,46 +71,46 @@
Source Files
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
-
+
Source Files\libmpdec
@@ -120,8 +120,8 @@
-
+
Source Files\libmpdec
-
\ No newline at end of file
+
diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat
index 60ce12b725e233..f5b7e114c98ded 100644
--- a/PCbuild/get_externals.bat
+++ b/PCbuild/get_externals.bat
@@ -54,6 +54,7 @@ set libraries=
set libraries=%libraries% bzip2-1.0.8
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.4
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-3.0.13
+set libraries=%libraries% mpdecimal-2.5.1
set libraries=%libraries% sqlite-3.45.1.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.13.1
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.13.1
diff --git a/PCbuild/python.props b/PCbuild/python.props
index e21f1f60464bc8..a8d08073fbd11e 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -74,6 +74,7 @@
$(ExternalsDir)libffi-3.4.4\
$(libffiDir)$(ArchName)\
$(libffiOutDir)include
+ $(ExternalsDir)\mpdecimal-2.5.1\
$(ExternalsDir)openssl-3.0.13\
$(ExternalsDir)openssl-bin-3.0.13\$(ArchName)\
$(opensslOutDir)include