diff --git a/CMakeExternals/cpprestsdk.cmake b/CMakeExternals/cpprestsdk.cmake
index c48dccc0cf..93644937b8 100644
--- a/CMakeExternals/cpprestsdk.cmake
+++ b/CMakeExternals/cpprestsdk.cmake
@@ -1,40 +1,39 @@
 set(proj cpprestsdk)
 set(proj_DEPENDENCIES Boost ZLIB)
 
 if(MITK_USE_${proj})
   set(${proj}_DEPENDS ${proj})
 
   if(DEFINED ${proj}_DIR AND NOT EXISTS ${${proj}_DIR})
     message(FATAL_ERROR "${proj}_DIR variable is defined but corresponds to non-existing directory!")
   endif()
 
   if(NOT DEFINED ${proj}_DIR)
     set(cmake_cache_args
       ${ep_common_cache_args}
       -DBUILD_SAMPLES:BOOL=OFF
       -DBUILD_TESTS:BOOL=OFF
       -DWERROR:BOOL=OFF
     )
 
     if(OPENSSL_ROOT_DIR)
       list(APPEND cmake_cache_args
         -DOPENSSL_ROOT_DIR:PATH=${OPENSSL_ROOT_DIR}
       )
     endif()
 
     ExternalProject_Add(${proj}
-      URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/cpprestsdk-2.10.10.tar.gz
-      URL_MD5 705c4bd79158433309b21251a4936b18
-      PATCH_COMMAND ${PATCH_COMMAND} -d "Release/libs/websocketpp" -N -p1 -i "${CMAKE_CURRENT_LIST_DIR}/${proj}.patch"
+      GIT_REPOSITORY https://github.com/microsoft/cpprestsdk.git
+      GIT_TAG v2.10.16
       SOURCE_SUBDIR Release
       CMAKE_ARGS ${ep_common_args}
       CMAKE_CACHE_ARGS ${cmake_cache_args}
       CMAKE_CACHE_DEFAULT_ARGS ${ep_common_cache_default_args}
       DEPENDS ${proj_DEPENDENCIES}
     )
 
     set(${proj}_DIR ${ep_prefix})
   else()
     mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   endif()
 endif()
diff --git a/CMakeExternals/cpprestsdk.patch b/CMakeExternals/cpprestsdk.patch
deleted file mode 100644
index c6e9591407..0000000000
--- a/CMakeExternals/cpprestsdk.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From c769c9238ad62178f506038178714a1c35aa2769 Mon Sep 17 00:00:00 2001
-From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
-Date: Tue, 16 Apr 2019 08:38:01 +0200
-Subject: [PATCH 1/2] Replace make_shared with new in some cases
-
-Replace make_shared for asio types that take a lib::ref as a parameter.
-This should fix the ASIO change (boostorg/asio@59066d8) for 1.70,
-while keeping it backwards compatible to older boost versions.
----
- websocketpp/transport/asio/connection.hpp    | 7 ++++---
- websocketpp/transport/asio/endpoint.hpp      | 3 +--
- websocketpp/transport/asio/security/none.hpp | 3 +--
- websocketpp/transport/asio/security/tls.hpp  | 3 +--
- 4 files changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
-index 60f88a79..1ccda8f3 100644
---- a/websocketpp/transport/asio/connection.hpp
-+++ b/websocketpp/transport/asio/connection.hpp
-@@ -311,9 +311,10 @@ class connection : public config::socket_type::socket_con_type {
-      * needed.
-      */
-     timer_ptr set_timer(long duration, timer_handler callback) {
--        timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
--            lib::ref(*m_io_service),
--            lib::asio::milliseconds(duration)
-+        timer_ptr new_timer(
-+            new lib::asio::steady_timer(
-+                *m_io_service,
-+                lib::asio::milliseconds(duration))
-         );
-
-         if (config::enable_multithreading) {
-diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
-index ddab2c74..4b719a97 100644
---- a/websocketpp/transport/asio/endpoint.hpp
-+++ b/websocketpp/transport/asio/endpoint.hpp
-@@ -195,8 +195,7 @@ class endpoint : public config::socket_type {
-
-         m_io_service = ptr;
-         m_external_io_service = true;
--        m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
--            lib::ref(*m_io_service));
-+        m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
-
-         m_state = READY;
-         ec = lib::error_code();
-diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp
-index 5c8293db..6c7d3524 100644
---- a/websocketpp/transport/asio/security/none.hpp
-+++ b/websocketpp/transport/asio/security/none.hpp
-@@ -168,8 +168,7 @@ class connection : public lib::enable_shared_from_this<connection> {
-             return socket::make_error_code(socket::error::invalid_state);
-         }
-
--        m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
--            lib::ref(*service));
-+        m_socket.reset(new lib::asio::ip::tcp::socket(*service));
-
-         if (m_socket_init_handler) {
-             m_socket_init_handler(m_hdl, *m_socket);
-diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
-index c76fd9aa..04ac3790 100644
---- a/websocketpp/transport/asio/security/tls.hpp
-+++ b/websocketpp/transport/asio/security/tls.hpp
-@@ -193,8 +193,7 @@ class connection : public lib::enable_shared_from_this<connection> {
-         if (!m_context) {
-             return socket::make_error_code(socket::error::invalid_tls_context);
-         }
--        m_socket = lib::make_shared<socket_type>(
--            _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
-+        m_socket.reset(new socket_type(*service, *m_context));
-
-         if (m_socket_init_handler) {
-             m_socket_init_handler(m_hdl, get_socket());
-
-From f810ca2e800e9b55be41c5911cf1d1185fcd516b Mon Sep 17 00:00:00 2001
-From: Stefan Floeren <42731906+stefan-floeren@users.noreply.github.com>
-Date: Wed, 17 Apr 2019 10:06:18 +0000
-Subject: [PATCH 2/2] Fix missed entries; fix testing
-
----
- CMakeLists.txt                            | 2 +-
- websocketpp/transport/asio/connection.hpp | 3 +--
- websocketpp/transport/asio/endpoint.hpp   | 7 ++-----
- 3 files changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2786aba9..951de975 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
- 	endif ()
-
-     if (NOT Boost_USE_STATIC_LIBS)
--        add_definitions (/DBOOST_TEST_DYN_LINK)
-+        add_definitions (-DBOOST_TEST_DYN_LINK)
-     endif ()
-
-     set (Boost_FIND_REQUIRED TRUE)
-diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
-index 1ccda8f3..57dda74a 100644
---- a/websocketpp/transport/asio/connection.hpp
-+++ b/websocketpp/transport/asio/connection.hpp
-@@ -462,8 +462,7 @@ class connection : public config::socket_type::socket_con_type {
-         m_io_service = io_service;
-
-         if (config::enable_multithreading) {
--            m_strand = lib::make_shared<lib::asio::io_service::strand>(
--                lib::ref(*io_service));
-+            m_strand.reset(new lib::asio::io_service::strand(*io_service));
-         }
-
-         lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
-diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
-index 4b719a97..94509adb 100644
---- a/websocketpp/transport/asio/endpoint.hpp
-+++ b/websocketpp/transport/asio/endpoint.hpp
-@@ -687,9 +687,7 @@ class endpoint : public config::socket_type {
-      * @since 0.3.0
-      */
-     void start_perpetual() {
--        m_work = lib::make_shared<lib::asio::io_service::work>(
--            lib::ref(*m_io_service)
--        );
-+        m_work.reset(new lib::asio::io_service::work(*m_io_service));
-     }
-
-     /// Clears the endpoint's perpetual flag, allowing it to exit when empty
-@@ -853,8 +851,7 @@ class endpoint : public config::socket_type {
-
-         // Create a resolver
-         if (!m_resolver) {
--            m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
--                lib::ref(*m_io_service));
-+            m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
-         }
-
-         tcon->set_uri(u);