diff --git a/Framework/Kernel/CMakeLists.txt b/Framework/Kernel/CMakeLists.txt
index bc345c68048063e6ceb9330c16d0f7f8674ae2c4..f460253f9f617270a763004300f0d2e1acdacad1 100644
--- a/Framework/Kernel/CMakeLists.txt
+++ b/Framework/Kernel/CMakeLists.txt
@@ -491,7 +491,7 @@ target_include_directories(Kernel SYSTEM
                            PUBLIC ${Boost_INCLUDE_DIRS} ${POCO_INCLUDE_DIRS}
                                   ${JSONCPP_INCLUDE_DIR}
                            PRIVATE ${NEXUS_INCLUDE_DIR} ${GSL_INCLUDE_DIR}
-                                   ${OPENSSL_INCLUDE_DIR} ${SPAN_INCLUDE_DIR})
+                                   ${OPENSSL_INCLUDE_DIR})
 
 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
   set_target_properties(Kernel PROPERTIES INSTALL_RPATH "@loader_path/../MacOS;@loader_path/../Frameworks")
@@ -519,7 +519,9 @@ target_link_libraries(Kernel
                       ${TCMALLOC_LIBRARIES_LINKTIME}
                       ${GSL_LIBRARIES}
                       ${MANTIDLIBS}
-                      ${NETWORK_LIBRARIES})
+                      ${NETWORK_LIBRARIES}
+                      span
+                      )
 if(WIN32)
   target_link_libraries(Kernel LINK_PRIVATE Psapi.lib) # For memory usage
                                                        # queries
diff --git a/buildconfig/CMake/Span.cmake b/buildconfig/CMake/Span.cmake
index 120f837fcf1bf8eeca6611b21d1b8b739052b4c4..4e5155f9ef3a4502e073f4278960ace37b326d48 100644
--- a/buildconfig/CMake/Span.cmake
+++ b/buildconfig/CMake/Span.cmake
@@ -1,12 +1,20 @@
-include(ExternalProject)
+include(FetchContent)
+message(STATUS "Using external tcbrindle/span")
 
-message(STATUS "Using tcbrindle/span in ExternalProject")
+find_package(Git)
 
-# Download and unpack Eigen at configure time
-configure_file(${CMAKE_SOURCE_DIR}/buildconfig/CMake/Span.in ${CMAKE_BINARY_DIR}/extern-span/CMakeLists.txt)
+set ( _apply_flags --ignore-space-change --whitespace=fix )
 
-execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION} . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/extern-span )
-execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/extern-span )
-
-set(SPAN_INCLUDE_DIR "${CMAKE_BINARY_DIR}/extern-span/span-prefix/src/span/include" CACHE PATH "")
+FetchContent_Declare(
+  span
+  GIT_REPOSITORY https://github.com/tcbrindle/span.git
+  GIT_TAG        08cb4bf0e06c0e36f7e2b64e488ede711a8bb5ad
+  PATCH_COMMAND     ${GIT_EXECUTABLE} reset --hard ${_tag}
+    COMMAND ${GIT_EXECUTABLE} apply ${_apply_flags} ${CMAKE_SOURCE_DIR}/buildconfig/CMake/span_disable_testing.patch
+)
 
+FetchContent_GetProperties(span)
+if(NOT span_POPULATED)
+  FetchContent_Populate(span)
+  add_subdirectory(${span_SOURCE_DIR} ${span_BINARY_DIR})
+endif()
diff --git a/buildconfig/CMake/Span.in b/buildconfig/CMake/Span.in
deleted file mode 100644
index 60f79cc7919325210497817e8ed77b198bea2e79..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/Span.in
+++ /dev/null
@@ -1,14 +0,0 @@
-cmake_minimum_required ( VERSION 3.5 )
-
-project(span-download NONE)
-
-include( ExternalProject )
-
-ExternalProject_Add(span
-  GIT_REPOSITORY "https://github.com/tcbrindle/span.git"
-  GIT_TAG "e9cf0809c9b8b9ecd06db782dc631f138fab4ee8"
-  CONFIGURE_COMMAND ""
-  BUILD_COMMAND     ""
-  INSTALL_COMMAND   ""
-  TEST_COMMAND      ""
-)
diff --git a/buildconfig/CMake/span_disable_testing.patch b/buildconfig/CMake/span_disable_testing.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6d2b0b1a01e9618b12c357a088acd68afe0dc3f5
--- /dev/null
+++ b/buildconfig/CMake/span_disable_testing.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7ad07e2..0470696 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2,7 +2,7 @@
+ cmake_minimum_required(VERSION 3.8)
+ project(span LANGUAGES CXX)
+ 
+-enable_testing()
++# enable_testing()
+ 
+ add_library(span INTERFACE)
+ target_sources(span INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include/tcb/span.hpp)
+@@ -11,4 +11,4 @@ target_compile_features(span INTERFACE cxx_std_11)
+ 
+ set(TCB_SPAN_TEST_CXX_STD 11 CACHE STRING "C++ standard version for testing")
+ 
+-add_subdirectory(test)
++# add_subdirectory(test)