diff --git a/reactos/dll/win32/msxml3/msxml3.rbuild b/reactos/dll/win32/msxml3/msxml3.rbuild
index 094194d10b2..7bae3c8f68c 100644
--- a/reactos/dll/win32/msxml3/msxml3.rbuild
+++ b/reactos/dll/win32/msxml3/msxml3.rbuild
@@ -9,9 +9,12 @@
0x600
0x601
0x501
+
+ libxml2
wine
urlmon
wininet
+ ws2_32
comctl32
shell32
shlwapi
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/DOCBparser.h b/reactos/include/reactos/libs/libxml/DOCBparser.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/DOCBparser.h
rename to reactos/include/reactos/libs/libxml/DOCBparser.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/HTMLparser.h b/reactos/include/reactos/libs/libxml/HTMLparser.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/HTMLparser.h
rename to reactos/include/reactos/libs/libxml/HTMLparser.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/HTMLtree.h b/reactos/include/reactos/libs/libxml/HTMLtree.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/HTMLtree.h
rename to reactos/include/reactos/libs/libxml/HTMLtree.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/Makefile.am b/reactos/include/reactos/libs/libxml/Makefile.am
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/Makefile.am
rename to reactos/include/reactos/libs/libxml/Makefile.am
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/Makefile.in b/reactos/include/reactos/libs/libxml/Makefile.in
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/Makefile.in
rename to reactos/include/reactos/libs/libxml/Makefile.in
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/SAX.h b/reactos/include/reactos/libs/libxml/SAX.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/SAX.h
rename to reactos/include/reactos/libs/libxml/SAX.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/SAX2.h b/reactos/include/reactos/libs/libxml/SAX2.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/SAX2.h
rename to reactos/include/reactos/libs/libxml/SAX2.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/c14n.h b/reactos/include/reactos/libs/libxml/c14n.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/c14n.h
rename to reactos/include/reactos/libs/libxml/c14n.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/catalog.h b/reactos/include/reactos/libs/libxml/catalog.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/catalog.h
rename to reactos/include/reactos/libs/libxml/catalog.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/chvalid.h b/reactos/include/reactos/libs/libxml/chvalid.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/chvalid.h
rename to reactos/include/reactos/libs/libxml/chvalid.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/debugXML.h b/reactos/include/reactos/libs/libxml/debugXML.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/debugXML.h
rename to reactos/include/reactos/libs/libxml/debugXML.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/dict.h b/reactos/include/reactos/libs/libxml/dict.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/dict.h
rename to reactos/include/reactos/libs/libxml/dict.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/encoding.h b/reactos/include/reactos/libs/libxml/encoding.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/encoding.h
rename to reactos/include/reactos/libs/libxml/encoding.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/entities.h b/reactos/include/reactos/libs/libxml/entities.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/entities.h
rename to reactos/include/reactos/libs/libxml/entities.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/globals.h b/reactos/include/reactos/libs/libxml/globals.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/globals.h
rename to reactos/include/reactos/libs/libxml/globals.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/hash.h b/reactos/include/reactos/libs/libxml/hash.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/hash.h
rename to reactos/include/reactos/libs/libxml/hash.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/list.h b/reactos/include/reactos/libs/libxml/list.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/list.h
rename to reactos/include/reactos/libs/libxml/list.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/nanoftp.h b/reactos/include/reactos/libs/libxml/nanoftp.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/nanoftp.h
rename to reactos/include/reactos/libs/libxml/nanoftp.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/nanohttp.h b/reactos/include/reactos/libs/libxml/nanohttp.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/nanohttp.h
rename to reactos/include/reactos/libs/libxml/nanohttp.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/parser.h b/reactos/include/reactos/libs/libxml/parser.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/parser.h
rename to reactos/include/reactos/libs/libxml/parser.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/parserInternals.h b/reactos/include/reactos/libs/libxml/parserInternals.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/parserInternals.h
rename to reactos/include/reactos/libs/libxml/parserInternals.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/pattern.h b/reactos/include/reactos/libs/libxml/pattern.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/pattern.h
rename to reactos/include/reactos/libs/libxml/pattern.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/relaxng.h b/reactos/include/reactos/libs/libxml/relaxng.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/relaxng.h
rename to reactos/include/reactos/libs/libxml/relaxng.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/schemasInternals.h b/reactos/include/reactos/libs/libxml/schemasInternals.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/schemasInternals.h
rename to reactos/include/reactos/libs/libxml/schemasInternals.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/threads.h b/reactos/include/reactos/libs/libxml/threads.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/threads.h
rename to reactos/include/reactos/libs/libxml/threads.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/tree.h b/reactos/include/reactos/libs/libxml/tree.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/tree.h
rename to reactos/include/reactos/libs/libxml/tree.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/uri.h b/reactos/include/reactos/libs/libxml/uri.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/uri.h
rename to reactos/include/reactos/libs/libxml/uri.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/valid.h b/reactos/include/reactos/libs/libxml/valid.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/valid.h
rename to reactos/include/reactos/libs/libxml/valid.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xinclude.h b/reactos/include/reactos/libs/libxml/xinclude.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xinclude.h
rename to reactos/include/reactos/libs/libxml/xinclude.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xlink.h b/reactos/include/reactos/libs/libxml/xlink.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xlink.h
rename to reactos/include/reactos/libs/libxml/xlink.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlIO.h b/reactos/include/reactos/libs/libxml/xmlIO.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlIO.h
rename to reactos/include/reactos/libs/libxml/xmlIO.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlautomata.h b/reactos/include/reactos/libs/libxml/xmlautomata.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlautomata.h
rename to reactos/include/reactos/libs/libxml/xmlautomata.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlerror.h b/reactos/include/reactos/libs/libxml/xmlerror.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlerror.h
rename to reactos/include/reactos/libs/libxml/xmlerror.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlexports.h b/reactos/include/reactos/libs/libxml/xmlexports.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlexports.h
rename to reactos/include/reactos/libs/libxml/xmlexports.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlmemory.h b/reactos/include/reactos/libs/libxml/xmlmemory.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlmemory.h
rename to reactos/include/reactos/libs/libxml/xmlmemory.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlmodule.h b/reactos/include/reactos/libs/libxml/xmlmodule.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlmodule.h
rename to reactos/include/reactos/libs/libxml/xmlmodule.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlreader.h b/reactos/include/reactos/libs/libxml/xmlreader.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlreader.h
rename to reactos/include/reactos/libs/libxml/xmlreader.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlregexp.h b/reactos/include/reactos/libs/libxml/xmlregexp.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlregexp.h
rename to reactos/include/reactos/libs/libxml/xmlregexp.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlsave.h b/reactos/include/reactos/libs/libxml/xmlsave.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlsave.h
rename to reactos/include/reactos/libs/libxml/xmlsave.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlschemas.h b/reactos/include/reactos/libs/libxml/xmlschemas.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlschemas.h
rename to reactos/include/reactos/libs/libxml/xmlschemas.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlschemastypes.h b/reactos/include/reactos/libs/libxml/xmlschemastypes.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlschemastypes.h
rename to reactos/include/reactos/libs/libxml/xmlschemastypes.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlstring.h b/reactos/include/reactos/libs/libxml/xmlstring.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlstring.h
rename to reactos/include/reactos/libs/libxml/xmlstring.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlunicode.h b/reactos/include/reactos/libs/libxml/xmlunicode.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlunicode.h
rename to reactos/include/reactos/libs/libxml/xmlunicode.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlversion.h b/reactos/include/reactos/libs/libxml/xmlversion.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlversion.h
rename to reactos/include/reactos/libs/libxml/xmlversion.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlversion.h.in b/reactos/include/reactos/libs/libxml/xmlversion.h.in
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlversion.h.in
rename to reactos/include/reactos/libs/libxml/xmlversion.h.in
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xmlwriter.h b/reactos/include/reactos/libs/libxml/xmlwriter.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xmlwriter.h
rename to reactos/include/reactos/libs/libxml/xmlwriter.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xpath.h b/reactos/include/reactos/libs/libxml/xpath.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xpath.h
rename to reactos/include/reactos/libs/libxml/xpath.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xpathInternals.h b/reactos/include/reactos/libs/libxml/xpathInternals.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xpathInternals.h
rename to reactos/include/reactos/libs/libxml/xpathInternals.h
diff --git a/reactos/lib/3rdparty/libxml2/include/libxml/xpointer.h b/reactos/include/reactos/libs/libxml/xpointer.h
similarity index 100%
rename from reactos/lib/3rdparty/libxml2/include/libxml/xpointer.h
rename to reactos/include/reactos/libs/libxml/xpointer.h
diff --git a/reactos/include/reactos/wine/config.h b/reactos/include/reactos/wine/config.h
index 10db80551f8..978dbd5bb24 100644
--- a/reactos/include/reactos/wine/config.h
+++ b/reactos/include/reactos/wine/config.h
@@ -276,10 +276,10 @@
/* #undef HAVE_LIBSOCKET */
/* Define if you have the libxml2 library */
-/* #undef HAVE_LIBXML2 */
+#define HAVE_LIBXML2
/* Define to 1 if you have the header file. */
-/* #undef HAVE_LIBXML_PARSER_H */
+#define HAVE_LIBXML_PARSER_H
/* Define to 1 if you have the `xpg4' library (-lxpg4). */
/* #undef HAVE_LIBXPG4 */
diff --git a/reactos/lib/3rdparty/3rdparty.rbuild b/reactos/lib/3rdparty/3rdparty.rbuild
index 7ec817af3d2..18e6ac66006 100644
--- a/reactos/lib/3rdparty/3rdparty.rbuild
+++ b/reactos/lib/3rdparty/3rdparty.rbuild
@@ -13,9 +13,9 @@
-
+
diff --git a/reactos/lib/3rdparty/libxml2/trionan.c b/reactos/lib/3rdparty/libxml2/trionan.c
index 3ec0fa2d907..79138a65f93 100644
--- a/reactos/lib/3rdparty/libxml2/trionan.c
+++ b/reactos/lib/3rdparty/libxml2/trionan.c
@@ -57,6 +57,9 @@
# include
# endif
#endif
+
+/* Small ReactOS hack */
+#define fpclassify fpclass
#include
#if defined(TRIO_DOCUMENTATION)