diff --git a/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch b/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
deleted file mode 100644
index dc6198fe98..0000000000
--- a/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
+++ /dev/null
@@ -1,78 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -40,5 +40,8 @@ EXTRA_DIST = \
-   tools/conf_tests/have_exception_ptr.cc \
-   untracked/README
- 
-+install-ptest:
-+	make -C examples install-ptest
-+
- # Optional: auto-generate the ChangeLog file from the git log on make dist
- include $(top_srcdir)/build/dist-changelog.am
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -19,6 +19,8 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_
- AM_CXXFLAGS = $(LIBXMLXX_WXXFLAGS)
- LDADD = $(top_builddir)/libxml++/libxml++-$(LIBXMLXX_API_VERSION).la $(LIBXMLXX_LIBS)
- 
-+LOG_DRIVER = $(SHELL) ../macros/test-driver
-+
- check_PROGRAMS = \
-   dom_build/dom_build \
-   dom_parse_entities/dom_parse_entities \
-@@ -37,6 +39,23 @@ check_PROGRAMS = \
-   schemavalidation/schemavalidation \
-   textreader/textreader
- 
-+check_DOTLIBS = \
-+  dom_build/.libs/dom_build \
-+  dom_parse_entities/.libs/dom_parse_entities \
-+  dom_parser/.libs/dom_parser \
-+  dom_parser_raw/.libs/dom_parser_raw \
-+  dom_read_write/.libs/dom_read_write \
-+  dom_xinclude/.libs/dom_xinclude \
-+  dom_xpath/.libs/dom_xpath \
-+  dtdvalidation/.libs/dtdvalidation \
-+  import_node/.libs/import_node \
-+  sax_exception/.libs/sax_exception \
-+  sax_parser/.libs/sax_parser \
-+  sax_parser_build_dom/.libs/sax_parser_build_dom \
-+  sax_parser_entities/.libs/sax_parser_entities \
-+  schemavalidation/.libs/schemavalidation \
-+  textreader/.libs/textreader
-+
- # Shell scripts that call the example programs.
- check_SCRIPTS = \
-   dom_build/make_check.sh \
-@@ -154,10 +173,10 @@ dist_noinst_DATA = \
- # file are located in different directories.
- dom_read_write/make_check.sh: Makefile
- 	$(AM_V_GEN)echo '# Generated and used by "make check"' >$@
--	$(AM_V_at)echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
-+	$(AM_V_at)echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@
- 	$(AM_V_at)chmod +x $@
- 
--script_template = cd "$(srcdir)/<!progname!>" && "$(abs_builddir)/<!progname!>/<!progname!>" >/dev/null
-+script_template = cd "<!progname!>" && ".libs/<!progname!>" >/dev/null
- standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS))
- 
- # All other script files are generated like so:
-@@ -169,3 +188,18 @@ $(standard_scripts): Makefile
- CLEANFILES = \
-   dom_read_write/example_output.xml \
-   $(check_SCRIPTS)
-+
-+buildtest: all
-+	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
-+	$(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS
-+
-+install-ptest:
-+	$(MKDIR_P) $(DESTDIR)/examples
-+	cp --parents $(check_DOTLIBS) $(DESTDIR)/examples
-+	cp --parents $(check_SCRIPTS) $(DESTDIR)/examples
-+	cd $(srcdir) && cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples
-+	cp Makefile $(DESTDIR)/examples
-+	$(MKDIR_P) $(DESTDIR)/macros
-+	cp $(top_srcdir)/build/test-driver $(DESTDIR)/macros
-+	sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile
-+
diff --git a/meta-oe/recipes-core/libxml/libxml++/run-ptest b/meta-oe/recipes-core/libxml/libxml++/run-ptest
index 236f667538..5e2d4177e2 100644
--- a/meta-oe/recipes-core/libxml/libxml++/run-ptest
+++ b/meta-oe/recipes-core/libxml/libxml++/run-ptest
@@ -1,3 +1,4 @@
 #!/bin/sh
-cd examples
-make -k check-TESTS
+for t in tests/*; do
+  $t && echo PASS: $t || echo FAIL: $t
+done
diff --git a/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
index f75568a1d9..412cc1ac21 100644
--- a/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
+++ b/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
 
 SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz \
-    file://libxml++_ptest.patch \
     file://run-ptest \
 "
 SRC_URI[sha256sum] = "9b59059abe5545d28ceb388a55e341095f197bd219c73e6623aeb6d801e00be8"
@@ -24,10 +23,15 @@ do_configure:prepend() {
 }
 
 do_compile_ptest() {
-  oe_runmake -C examples buildtest
+  oe_runmake_call -C tests check || true
+}
+
+do_install_ptest() {
+  cd ${B}/tests
+  for t in *; do
+    [ -d $t ] && install -D $t/.libs/test ${D}${PTEST_PATH}/tests/$t
+  done
 }
 
 FILES:${PN}-doc += "${datadir}/devhelp"
 FILES:${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h"
-
-RDEPENDS:${PN}-ptest += "make"
