diff --git a/meta-oe/recipes-test/catch2/catch2/0001-Remove-redundant-move.patch b/meta-oe/recipes-test/catch2/catch2/0001-Remove-redundant-move.patch
index c3f5fc9ce7..dc8a8915eb 100644
--- a/meta-oe/recipes-test/catch2/catch2/0001-Remove-redundant-move.patch
+++ b/meta-oe/recipes-test/catch2/catch2/0001-Remove-redundant-move.patch
@@ -1,36 +1,37 @@
-From b2bd82a0c0d3d5dda588d12cc1672a03a9630784 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 17 Dec 2018 17:27:43 -0800
-Subject: [PATCH] Remove redundant move
+From 7d7428fd09d1bcee281f7b678df8fb71e9365b17 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?=
+ <martin.horenovsky@gmail.com>
+Date: Thu, 27 Dec 2018 16:08:04 +0100
+Subject: [PATCH] A different approach
 
-fixes errors like below
-
-/mnt/a/yoe/build/tmp/work/aarch64-yoe-linux-musl/catch2/2.5.0-r0/git/include/internal/catch_session.cpp:52:29:
-error: redundant move in return statement [-Werror=redundant-move]
-   52 |             return std::move(multi);
-      |                    ~~~~~~~~~^~~~~~~
-/mnt/a/yoe/build/tmp/work/aarch64-yoe-linux-musl/catch2/2.5.0-r0/git/include/internal/catch_session.cpp:52:29:
-note: remove 'std::move' call
-
-Upstream-Status: Submitted [https://github.com/catchorg/Catch2/pull/1474]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- include/internal/catch_session.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ include/internal/catch_session.cpp | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
 
-diff --git a/include/internal/catch_session.cpp b/include/internal/catch_session.cpp
-index 0920521c..b66d57ac 100644
 --- a/include/internal/catch_session.cpp
 +++ b/include/internal/catch_session.cpp
-@@ -49,7 +49,7 @@ namespace Catch {
-                 multi->addListener(listener->create(Catch::ReporterConfig(config)));
+@@ -42,14 +42,20 @@ namespace Catch {
+                 return createReporter(config->getReporterName(), config);
+             }
+ 
+-            auto multi = std::unique_ptr<ListeningReporter>(new ListeningReporter);
++            // On older platforms, returning std::unique_ptr<ListeningReporter>
++            // when the return type is std::unique_ptr<IStreamingReporter>
++            // doesn't compile without a std::move call. However, this causes
++            // a warning on newer platforms. Thus, we have to work around
++            // it a bit and downcast the pointer manually.
++            auto ret = std::unique_ptr<IStreamingReporter>(new ListeningReporter);
++            auto& multi = static_cast<ListeningReporter&>(*ret);
+ 
+             auto const& listeners = Catch::getRegistryHub().getReporterRegistry().getListeners();
+             for (auto const& listener : listeners) {
+-                multi->addListener(listener->create(Catch::ReporterConfig(config)));
++                multi.addListener(listener->create(Catch::ReporterConfig(config)));
              }
-             multi->addReporter(createReporter(config->getReporterName(), config));
+-            multi->addReporter(createReporter(config->getReporterName(), config));
 -            return std::move(multi);
-+            return multi;
++            multi.addReporter(createReporter(config->getReporterName(), config));
++            return ret;
          }
  
  
--- 
-2.20.1
-
diff --git a/meta-oe/recipes-test/catch2/catch2_2.5.0.bb b/meta-oe/recipes-test/catch2/catch2_2.5.0.bb
index 14a1ebe80d..26149b31e4 100644
--- a/meta-oe/recipes-test/catch2/catch2_2.5.0.bb
+++ b/meta-oe/recipes-test/catch2/catch2_2.5.0.bb
@@ -9,7 +9,8 @@ SRC_URI = "git://github.com/catchorg/Catch2.git \
            file://0001-Remove-redundant-move.patch \
           "
 # v2.5.0
-SRCREV = "6ccd467094973824d89efb16cbc553e279f79823"
+#SRCREV = "6ccd467094973824d89efb16cbc553e279f79823"
+SRCREV = "461843b1f02a4bf5c59db88ff201d2c56fabf3a4"
 
 S = "${WORKDIR}/git"
 
@@ -23,4 +24,3 @@ do_install_append() {
 # Header-only library
 RDEPENDS_${PN}-dev = ""
 RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
-
