diff --git a/SOURCES/0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-and-MPI_-LA.patch b/SOURCES/0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-and-MPI_-LA.patch
new file mode 100644
index 0000000..a4294b4
--- /dev/null
+++ b/SOURCES/0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-and-MPI_-LA.patch
@@ -0,0 +1,33 @@
+From 31b8b28fedbf102740eebd7ff9148188ed00a26e Mon Sep 17 00:00:00 2001
+From: Robert Maynard <robert.maynard@kitware.com>
+Date: Tue, 20 Aug 2019 17:38:53 -0400
+Subject: [PATCH] FindMPI: Restore MPI_<LANG>_COMPILE_FLAGS and
+ MPI_<LANG>_COMPILE_OPTIONS
+
+In commit e374b9f1eb (FindMPI: Restore MPI_<LANG>_COMPILE_FLAGS as a
+command-line string, 2018-09-10, v3.12.3~6^2) we tried to restore the
+compile flags but accidentally inverted the arguments to `list(JOIN)`
+causing both `MPI_<LANG>_COMPILE_FLAGS` and `MPI_<LANG>_COMPILE_OPTIONS`
+to be empty.
+
+Issue: #18349
+---
+ Modules/FindMPI.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake
+index 9471be8..2b9b20c 100644
+--- a/Modules/FindMPI.cmake
++++ b/Modules/FindMPI.cmake
+@@ -1698,7 +1698,7 @@ foreach(LANG IN ITEMS C CXX Fortran)
+     set(MPI_${LANG}_INCLUDE_PATH "${MPI_${LANG}_INCLUDE_DIRS}")
+     unset(MPI_${LANG}_COMPILE_FLAGS)
+     if(MPI_${LANG}_COMPILE_OPTIONS)
+-      list(JOIN MPI_${LANG}_COMPILE_FLAGS " " MPI_${LANG}_COMPILE_OPTIONS)
++      list(JOIN MPI_${LANG}_COMPILE_OPTIONS " " MPI_${LANG}_COMPILE_FLAGS)
+     endif()
+     if(MPI_${LANG}_COMPILE_DEFINITIONS)
+       foreach(_MPI_DEF IN LISTS MPI_${LANG}_COMPILE_DEFINITIONS)
+-- 
+1.8.3.1
+
diff --git a/SOURCES/0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-as-a-comman.patch b/SOURCES/0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-as-a-comman.patch
new file mode 100644
index 0000000..bff9010
--- /dev/null
+++ b/SOURCES/0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-as-a-comman.patch
@@ -0,0 +1,32 @@
+From e374b9f1ebae70ca4381588362d6d3418f832ea7 Mon Sep 17 00:00:00 2001
+From: Brad King <brad.king@kitware.com>
+Date: Mon, 10 Sep 2018 14:30:59 -0400
+Subject: [PATCH] FindMPI: Restore MPI_<LANG>_COMPILE_FLAGS as a command-line
+ string
+
+Refactoring in commit v3.10.0-rc1~103^2~2 (FindMPI: Modernization from
+ground up, 2017-04-25) accidentally left this variable set as a copy of
+the `;`-list in `MPI_<LANG>_COMPILE_OPTIONS`, but the flags variable is
+documented as a command-line string.  Restore it now.
+
+Fixes: #18349
+---
+ Modules/FindMPI.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake
+index 75c4441..bfcd876 100644
+--- a/Modules/FindMPI.cmake
++++ b/Modules/FindMPI.cmake
+@@ -1680,7 +1680,7 @@ foreach(LANG IN ITEMS C CXX Fortran)
+     set(MPI_${LANG}_INCLUDE_PATH "${MPI_${LANG}_INCLUDE_DIRS}")
+     unset(MPI_${LANG}_COMPILE_FLAGS)
+     if(MPI_${LANG}_COMPILE_OPTIONS)
+-      set(MPI_${LANG}_COMPILE_FLAGS "${MPI_${LANG}_COMPILE_OPTIONS}")
++      list(JOIN MPI_${LANG}_COMPILE_FLAGS " " MPI_${LANG}_COMPILE_OPTIONS)
+     endif()
+     if(MPI_${LANG}_COMPILE_DEFINITIONS)
+       foreach(_MPI_DEF IN LISTS MPI_${LANG}_COMPILE_DEFINITIONS)
+-- 
+1.8.3.1
+
diff --git a/SPECS/cmake.spec b/SPECS/cmake.spec
index ee4d9b1..c3f04ea 100644
--- a/SPECS/cmake.spec
+++ b/SPECS/cmake.spec
@@ -63,7 +63,7 @@
 
 Name:           %{orig_name}%{?name_suffix}
 Version:        %{major_version}.%{minor_version}.4
-Release:        3%{?relsuf}%{?dist}
+Release:        4%{?relsuf}%{?dist}
 Summary:        Cross-platform make system
 
 # most sources are BSD
@@ -98,6 +98,11 @@ Patch102:       %{name}-mingw-dl.patch
 # https://gitlab.kitware.com/cmake/cmake/merge_requests/2169
 Patch103: cmake-libuv-location.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=1749463
+# https://gitlab.kitware.com/cmake/cmake/issues/18349
+Patch104: 0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-as-a-comman.patch
+Patch105: 0001-FindMPI-Restore-MPI_-LANG-_COMPILE_FLAGS-and-MPI_-LA.patch
+
 # Patch for renaming on EPEL
 %if 0%{?name_suffix:1}
 Patch1:      %{name}-rename.patch
@@ -412,7 +417,9 @@ mv -f Modules/FindLibArchive.cmake Modules/FindLibArchive.disabled
 pushd build
 #CMake.FileDownload, CTestTestUpload, and curl require internet access
 # RunCMake.CPack_RPM is broken if disttag contains "+", bug #1499151
-NO_TEST="CMake.FileDownload|CTestTestUpload|curl|RunCMake.CPack_RPM"
+# CPackComponentsForAll-RPM-IgnoreGroup fails on RHEL8
+# https://gitlab.kitware.com/cmake/cmake/issues/19983
+NO_TEST="CMake.FileDownload|CTestTestUpload|curl|RunCMake.CPack_RPM|CPackComponentsForAll-RPM-IgnoreGroup"
 # RunCMake.File_Generate fails on S390X
 %ifarch s390x
 NO_TEST="$NO_TEST|RunCMake.File_Generate"
@@ -509,6 +516,9 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
 
 
 %changelog
+* Wed Nov 27 2019 Tom Stellard <tstellar@redhat.com> - 3.11.4-4
+- Fix bug with mpi detection
+
 * Sat Aug  4 2018 Florian Weimer <fweimer@redhat.com> - 3.11.4-3
 - Adjust to new libuv header location (#1611710)