diff --git a/README.md b/README.md
index 82cdf0ab4ffd48802d29f6a41b49400d73e165bb..36e9f93fe426dc327c8e9db3477c2a8cd8a4f265 100644
--- a/README.md
+++ b/README.md
@@ -226,9 +226,9 @@ Currently, this layer is still under continuous development.
   (cf. https://github.com/kartikmohta/meta-km/blob/master/recipes-devtools/yaml-cpp/yaml-cpp_0.3.0.bb)
   licensed with the MIT License.
 
-  The libpoco recipe originated from the recipe in digitalSTROM's OpenEmbedded layer
-  (cf. https://gitorious.digitalstrom.org/dss-oe/dss-oe/blobs/master/dS/meta-dss11-production/recipes-support/poco/poco_1.3.6p2.bb)
-  licensed with the MIT License.
+  The poco recipe is a copy of the poco recipe in the meta-oe layer licensed with the MIT License
+  (cf. http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/poco).
+  The recipe is included in the meta-ros layer to support the use of older versions of the meta-oe layer.
 
   The core-image-ros-* recipes originated from the core-image-minimal recipe in OpenEmbedded Core
   (cf. http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/images/core-image-minimal.bb)
diff --git a/recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch b/recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch
deleted file mode 100644
index 83a7b142ce5edb61ccd68d0ec6b70f9cfded85ef..0000000000000000000000000000000000000000
--- a/recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 9258e482d71f327020efa10b873b9623458f2985 Mon Sep 17 00:00:00 2001
-From: Aleksandar Fabijanic <alex@pocoproject.org>
-Date: Tue, 29 Jul 2014 10:46:52 -0500
-Subject: [PATCH] GH #508: Can't compile for arm64 architecture
-
-Upstream-Status: Backport [from version 1.5.4]
----
- Foundation/src/utils.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h
-index dbd61a3..a25757c 100644
---- a/Foundation/src/utils.h
-+++ b/Foundation/src/utils.h
-@@ -59,7 +59,8 @@
-     defined(__mips__) || defined(__powerpc__) || \
-     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
-     defined(__SH4__) || defined(__alpha__) || \
--    defined(_MIPS_ARCH_MIPS32R2)
-+    defined(_MIPS_ARCH_MIPS32R2) || \
-+    defined(__AARCH64EL__)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
- #if defined(_WIN32)
diff --git a/recipes-extended/libpoco/libpoco_1.5.3.bb b/recipes-extended/libpoco/libpoco_1.5.3.bb
deleted file mode 100644
index d8699b135c45d8c6491c08d9c48d89c881012e9b..0000000000000000000000000000000000000000
--- a/recipes-extended/libpoco/libpoco_1.5.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "POCO C++ Libraries"
-HOMEPAGE = "http://pocoproject.org"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
-
-DEPENDS = "expat zlib libpcre openssl"
-
-SRC_URI = "https://github.com/pocoproject/poco/archive/poco-${PV}-release.tar.gz"
-SRC_URI[md5sum] = "4636d84055a434fde3a67396bf15924a"
-SRC_URI[sha256sum] = "f26bbd7879ad79b45630f8efa20b1c65f0ddf81dc44f169245d512d208c71e53"
-
-SRC_URI += "file://9258e482d71f327020efa10b873b9623458f2985.patch"
-
-S = "${WORKDIR}/poco-poco-${PV}-release"
-
-EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release -DPOCO_UNBUNDLED=On"
-
-inherit cmake
diff --git a/recipes-ros/class-loader/class-loader_0.3.4.bb b/recipes-ros/class-loader/class-loader_0.3.4.bb
index 527e45373a048f9ddbb91b0583be8a8a2bcc3a53..1e1d60c3be2098155d3fb40c087399ff1d4934d1 100644
--- a/recipes-ros/class-loader/class-loader_0.3.4.bb
+++ b/recipes-ros/class-loader/class-loader_0.3.4.bb
@@ -8,7 +8,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "cmake-modules console-bridge libpoco"
+DEPENDS = "cmake-modules console-bridge poco"
 
 SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
 SRC_URI[md5sum] = "3fb8bbc0273a613fcc519bdf549fcab6"
diff --git a/recipes-support/poco/poco/run-ptest b/recipes-support/poco/poco/run-ptest
new file mode 100644
index 0000000000000000000000000000000000000000..c479f7ac107b9cd1b388e0c73a06c6f1035e165d
--- /dev/null
+++ b/recipes-support/poco/poco/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+while read runner; do
+  pushd . >/dev/null
+  cd bin
+  echo Testing $runner
+  ./$runner-testrunner -all
+  popd >/dev/null
+done < testrunners
+
diff --git a/recipes-support/poco/poco_1.7.4.bb b/recipes-support/poco/poco_1.7.4.bb
new file mode 100644
index 0000000000000000000000000000000000000000..e7a279f07e9d8c04267d0b3ca5c4721d568e998b
--- /dev/null
+++ b/recipes-support/poco/poco_1.7.4.bb
@@ -0,0 +1,105 @@
+SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
+DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
+SECTION = "libs"
+HOMEPAGE = "http://pocoproject.org/"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
+
+# These dependencies are required by Foundation
+DEPENDS = "libpcre zlib"
+
+inherit cmake ptest
+
+BBCLASSEXTEND = "native"
+
+SRCREV = "da66f2863aa02c11967862f2d9f0251574a5e9c2"
+SRC_URI = " \
+    git://github.com/pocoproject/poco.git \
+    file://run-ptest \
+   "
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
+                 ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
+
+# For the native build we want to use the bundled version
+EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
+
+# do not use rpath
+EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
+
+# By default the most commonly used poco components are built
+# Foundation is built anyway and doesn't need to be listed explicitly
+# these don't have dependencies outside oe-core
+PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip"
+
+PACKAGECONFIG[XML] = "-DENABLE_XML=ON,-DENABLE_XML=OFF,expat"
+PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
+PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
+PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
+PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
+PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
+PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON,-DENABLE_NETSSL=OFF,openssl"
+PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON,-DENABLE_CRYPTO=OFF,openssl"
+PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
+PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON,-DENABLE_DATA_SQLITE=OFF,sqlite3"
+PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
+
+# Additional components not build by default,
+# they might have dependencies not included in oe-core
+# or they don't work on all architectures
+PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
+PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
+PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON,-DENABLE_DATA_MYSQL=OFF,mariadb"
+PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
+PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
+PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
+PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
+
+# Make a package for each library
+PACKAGES = "${PN}-dbg ${POCO_PACKAGES}"
+python __anonymous () {
+    packages = []
+    testrunners = []
+    components = d.getVar("PACKAGECONFIG", True).split()
+    components.append("Foundation")
+    for lib in components:
+        pkg = ("poco-%s" % lib.lower()).replace("_","")
+        packages.append(pkg)
+        if not d.getVar("FILES_%s" % pkg, True):
+            d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib)
+        testrunners.append("%s" % lib)
+
+    d.setVar("POCO_PACKAGES", " ".join(packages))
+    d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
+}
+
+# "poco" is a metapackage which pulls in all Poco components
+PACKAGES += "${PN}"
+RRECOMMENDS_${PN} += "${POCO_PACKAGES}"
+RRECOMMENDS_${PN}_class-native = ""
+ALLOW_EMPTY_${PN} = "1"
+
+# -dev last to pick up the remaining stuff
+PACKAGES += "${PN}-dev ${PN}-staticdev"
+FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake"
+FILES_${PN}-staticdev = "${libdir}/libPoco*.a"
+
+# ptest support
+FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug"
+
+# cppunit is only built if tests are enabled
+PACKAGES += "${PN}-cppunit"
+FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*"
+ALLOW_EMPTY_${PN}-cppunit = "1"
+
+RDEPENDS_${PN}-ptest += "${PN}-cppunit"
+
+do_install_ptest () {
+       cp -rf ${B}/bin/ ${D}${PTEST_PATH}
+       cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
+       cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
+       find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
+       echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
+}