diff --git a/configure.REMOVED.git-id b/configure.REMOVED.git-id
index cda5c0782a..2e41bbd104 100644
--- a/configure.REMOVED.git-id
+++ b/configure.REMOVED.git-id
@@ -1 +1 @@
-140ec3920dca207f77ab9142ac89bc455003ef76
\ No newline at end of file
+9651e72614847fae454c51d34b2ddc5272121cd4
\ No newline at end of file
diff --git a/configure.ac.REMOVED.git-id b/configure.ac.REMOVED.git-id
index 09ac8e70be..748a74e48e 100644
--- a/configure.ac.REMOVED.git-id
+++ b/configure.ac.REMOVED.git-id
@@ -1 +1 @@
-003a94bb3fbe2c4593a6c218379c80858e571b8f
\ No newline at end of file
+73c9caf1d32f275732fb0af91e0c45664cae4093
\ No newline at end of file
diff --git a/external/bockbuild/packages/pango.py b/external/bockbuild/packages/pango.py
index 0691078cd8..28020a47c0 100644
--- a/external/bockbuild/packages/pango.py
+++ b/external/bockbuild/packages/pango.py
@@ -36,7 +36,10 @@ class PangoPackage (GnomeXzPackage):
             'patches/pango-coretext-fix-yosemite-crasher.patch',
 
             'patches/pango-system-font-single.patch',
-            'patches/pango-system-font-check-version.patch'
+            'patches/pango-system-font-check-version.patch',
+
+            # https://devdiv.visualstudio.com/DevDiv/_workitems/edit/573960
+            'patches/pango-get-shaper-for-ideographic-space.patch'
         ])
 
     def prep(self):
diff --git a/external/bockbuild/packages/patches/pango-get-shaper-for-ideographic-space.patch b/external/bockbuild/packages/patches/pango-get-shaper-for-ideographic-space.patch
new file mode 100644
index 0000000000..f6a8d9e954
--- /dev/null
+++ b/external/bockbuild/packages/patches/pango-get-shaper-for-ideographic-space.patch
@@ -0,0 +1,23 @@
+diff --git a/pango/.libs/libpango-1.0.0.dylib b/pango/.libs/libpango-1.0.0.dylib
+index 61cf31d..ac8ae15 100755
+Binary files a/pango/.libs/libpango-1.0.0.dylib and b/pango/.libs/libpango-1.0.0.dylib differ
+diff --git a/pango/.libs/pango-context.o b/pango/.libs/pango-context.o
+index 0fa9fe2..039e046 100644
+Binary files a/pango/.libs/pango-context.o and b/pango/.libs/pango-context.o differ
+diff --git a/pango/pango-context.c b/pango/pango-context.c
+index 8e96713..d66f8bd 100644
+--- a/pango/pango-context.c
++++ b/pango/pango-context.c
+@@ -1459,7 +1459,8 @@ itemize_state_process_run (ItemizeState *state)
+        */
+       if (G_UNLIKELY (!g_unichar_isgraph (wc) &&
+ 		      g_unichar_type (wc) != G_UNICODE_PRIVATE_USE &&
+-		      g_unichar_type (wc) != G_UNICODE_UNASSIGNED))
++		      g_unichar_type (wc) != G_UNICODE_UNASSIGNED) &&
++          wc != 0x3000)
+ 	{
+ 	  shape_engine = NULL;
+ 	  font = NULL;
+diff --git a/tests/cxx-test b/tests/cxx-test
+index 683868f..428d903 100755
+Binary files a/tests/cxx-test and b/tests/cxx-test differ
diff --git a/mcs/build/common/Consts.cs b/mcs/build/common/Consts.cs
index 163e7a4a42..4d328ff316 100644
--- a/mcs/build/common/Consts.cs
+++ b/mcs/build/common/Consts.cs
@@ -34,7 +34,7 @@ static class Consts
 	// Use these assembly version constants to make code more maintainable.
 	//
 
-	public const string MonoVersion = "5.14.0.84";
+	public const string MonoVersion = "5.14.0.87";
 	public const string MonoCompany = "Mono development team";
 	public const string MonoProduct = "Mono Common Language Infrastructure";
 	public const string MonoCopyright = "(c) Various Mono authors";
diff --git a/mcs/class/corlib/Test/System.Threading/ThreadPrincipalTests.cs b/mcs/class/corlib/Test/System.Threading/ThreadPrincipalTests.cs
index 712814c137..d74db9d03b 100644
--- a/mcs/class/corlib/Test/System.Threading/ThreadPrincipalTests.cs
+++ b/mcs/class/corlib/Test/System.Threading/ThreadPrincipalTests.cs
@@ -14,8 +14,9 @@ namespace MonoTests.System.Threading.Tasks
         [Test]
         public void PrincipalFlowsToAsyncTask ()
         {
-            var t = _PrincipalFlowsToAsyncTask();
-            t.GetAwaiter().GetResult();
+            /* run in different thread to work around problems on platforms
+            * where SynchronizationContext is set (e.g. Xamarin.iOS) */
+            Assert.IsTrue (Task.Run (async () => await _PrincipalFlowsToAsyncTask ()).Wait (5000));
         }
 
         public async Task _PrincipalFlowsToAsyncTask ()
diff --git a/mcs/class/lib/monolite-darwin/1051400003/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/Mono.Security.dll.REMOVED.git-id
index cf9464c46b..fcef05a83b 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/Mono.Security.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/Mono.Security.dll.REMOVED.git-id
@@ -1 +1 @@
-839f103c74c88a2801043484a09e75202ae8a629
\ No newline at end of file
+3853b623d686bab166a238cad03215c3d771883f
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-darwin/1051400003/System.Configuration.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/System.Configuration.dll.REMOVED.git-id
index 1fad0d6224..e1fcef571b 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/System.Configuration.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/System.Configuration.dll.REMOVED.git-id
@@ -1 +1 @@
-8739aeb1983d811097942dd8fb6f8a674a22aac2
\ No newline at end of file
+0c36226976d1a6da72bb558563c29596dea8391b
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-darwin/1051400003/System.Numerics.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/System.Numerics.dll.REMOVED.git-id
index fda2265b19..26433dabec 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/System.Numerics.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/System.Numerics.dll.REMOVED.git-id
@@ -1 +1 @@
-6ecc97919483a7056c7d9a1ab1cf8e1b93cf3a74
\ No newline at end of file
+f43addc57be73e4acbc9b556460ed07dc921fdab
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-darwin/1051400003/System.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/System.Security.dll.REMOVED.git-id
index 85f6f1f0c4..8554b6a15f 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/System.Security.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/System.Security.dll.REMOVED.git-id
@@ -1 +1 @@
-7a661b2772a14658cc6e7d56c202f37cb6186b3c
\ No newline at end of file
+429decf9c93800adf78af52c9a11ea1669f8ea61
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-darwin/1051400003/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/System.Xml.dll.REMOVED.git-id
index 1e83d30969..076f802882 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/System.Xml.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/System.Xml.dll.REMOVED.git-id
@@ -1 +1 @@
-da054b18cf6764ce57924ba093e1a85453cdcc22
\ No newline at end of file
+98c003ba9b5b20ad62ef5146cfe25902900bd6ae
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-darwin/1051400003/mcs.exe.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/mcs.exe.REMOVED.git-id
index ac20c3a766..1ff1b4027e 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/mcs.exe.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/mcs.exe.REMOVED.git-id
@@ -1 +1 @@
-f129ce3303c180773a392cc1e2d50244de2d5119
\ No newline at end of file
+9564f29a5c020b2804643f20c76df78d2b2790ef
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-darwin/1051400003/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051400003/mscorlib.dll.REMOVED.git-id
index 67bb96a012..ae51d36c9b 100644
--- a/mcs/class/lib/monolite-darwin/1051400003/mscorlib.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-darwin/1051400003/mscorlib.dll.REMOVED.git-id
@@ -1 +1 @@
-6a9ab2371c41b004ae342b7145a67a2583c21672
\ No newline at end of file
+8fffb09248c7a0c187464bfac6aad30fec5be792
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/Mono.Security.dll.REMOVED.git-id
index cf9464c46b..fcef05a83b 100644
--- a/mcs/class/lib/monolite-linux/1051400003/Mono.Security.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/Mono.Security.dll.REMOVED.git-id
@@ -1 +1 @@
-839f103c74c88a2801043484a09e75202ae8a629
\ No newline at end of file
+3853b623d686bab166a238cad03215c3d771883f
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/System.Configuration.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/System.Configuration.dll.REMOVED.git-id
index 1fad0d6224..e1fcef571b 100644
--- a/mcs/class/lib/monolite-linux/1051400003/System.Configuration.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/System.Configuration.dll.REMOVED.git-id
@@ -1 +1 @@
-8739aeb1983d811097942dd8fb6f8a674a22aac2
\ No newline at end of file
+0c36226976d1a6da72bb558563c29596dea8391b
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/System.Numerics.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/System.Numerics.dll.REMOVED.git-id
index fda2265b19..26433dabec 100644
--- a/mcs/class/lib/monolite-linux/1051400003/System.Numerics.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/System.Numerics.dll.REMOVED.git-id
@@ -1 +1 @@
-6ecc97919483a7056c7d9a1ab1cf8e1b93cf3a74
\ No newline at end of file
+f43addc57be73e4acbc9b556460ed07dc921fdab
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/System.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/System.Security.dll.REMOVED.git-id
index 85f6f1f0c4..8554b6a15f 100644
--- a/mcs/class/lib/monolite-linux/1051400003/System.Security.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/System.Security.dll.REMOVED.git-id
@@ -1 +1 @@
-7a661b2772a14658cc6e7d56c202f37cb6186b3c
\ No newline at end of file
+429decf9c93800adf78af52c9a11ea1669f8ea61
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/System.Xml.dll.REMOVED.git-id
index 1e83d30969..076f802882 100644
--- a/mcs/class/lib/monolite-linux/1051400003/System.Xml.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/System.Xml.dll.REMOVED.git-id
@@ -1 +1 @@
-da054b18cf6764ce57924ba093e1a85453cdcc22
\ No newline at end of file
+98c003ba9b5b20ad62ef5146cfe25902900bd6ae
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/mcs.exe.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/mcs.exe.REMOVED.git-id
index ac20c3a766..1ff1b4027e 100644
--- a/mcs/class/lib/monolite-linux/1051400003/mcs.exe.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/mcs.exe.REMOVED.git-id
@@ -1 +1 @@
-f129ce3303c180773a392cc1e2d50244de2d5119
\ No newline at end of file
+9564f29a5c020b2804643f20c76df78d2b2790ef
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-linux/1051400003/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051400003/mscorlib.dll.REMOVED.git-id
index 67bb96a012..ae51d36c9b 100644
--- a/mcs/class/lib/monolite-linux/1051400003/mscorlib.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-linux/1051400003/mscorlib.dll.REMOVED.git-id
@@ -1 +1 @@
-6a9ab2371c41b004ae342b7145a67a2583c21672
\ No newline at end of file
+8fffb09248c7a0c187464bfac6aad30fec5be792
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/Mono.Security.dll.REMOVED.git-id
index cf9464c46b..fcef05a83b 100644
--- a/mcs/class/lib/monolite-win32/1051400003/Mono.Security.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/Mono.Security.dll.REMOVED.git-id
@@ -1 +1 @@
-839f103c74c88a2801043484a09e75202ae8a629
\ No newline at end of file
+3853b623d686bab166a238cad03215c3d771883f
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/System.Configuration.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/System.Configuration.dll.REMOVED.git-id
index 1fad0d6224..e1fcef571b 100644
--- a/mcs/class/lib/monolite-win32/1051400003/System.Configuration.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/System.Configuration.dll.REMOVED.git-id
@@ -1 +1 @@
-8739aeb1983d811097942dd8fb6f8a674a22aac2
\ No newline at end of file
+0c36226976d1a6da72bb558563c29596dea8391b
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/System.Numerics.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/System.Numerics.dll.REMOVED.git-id
index fda2265b19..26433dabec 100644
--- a/mcs/class/lib/monolite-win32/1051400003/System.Numerics.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/System.Numerics.dll.REMOVED.git-id
@@ -1 +1 @@
-6ecc97919483a7056c7d9a1ab1cf8e1b93cf3a74
\ No newline at end of file
+f43addc57be73e4acbc9b556460ed07dc921fdab
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/System.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/System.Security.dll.REMOVED.git-id
index 85f6f1f0c4..8554b6a15f 100644
--- a/mcs/class/lib/monolite-win32/1051400003/System.Security.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/System.Security.dll.REMOVED.git-id
@@ -1 +1 @@
-7a661b2772a14658cc6e7d56c202f37cb6186b3c
\ No newline at end of file
+429decf9c93800adf78af52c9a11ea1669f8ea61
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/System.Xml.dll.REMOVED.git-id
index 1e83d30969..076f802882 100644
--- a/mcs/class/lib/monolite-win32/1051400003/System.Xml.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/System.Xml.dll.REMOVED.git-id
@@ -1 +1 @@
-da054b18cf6764ce57924ba093e1a85453cdcc22
\ No newline at end of file
+98c003ba9b5b20ad62ef5146cfe25902900bd6ae
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/mcs.exe.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/mcs.exe.REMOVED.git-id
index ac20c3a766..1ff1b4027e 100644
--- a/mcs/class/lib/monolite-win32/1051400003/mcs.exe.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/mcs.exe.REMOVED.git-id
@@ -1 +1 @@
-f129ce3303c180773a392cc1e2d50244de2d5119
\ No newline at end of file
+9564f29a5c020b2804643f20c76df78d2b2790ef
\ No newline at end of file
diff --git a/mcs/class/lib/monolite-win32/1051400003/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051400003/mscorlib.dll.REMOVED.git-id
index 67bb96a012..ae51d36c9b 100644
--- a/mcs/class/lib/monolite-win32/1051400003/mscorlib.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite-win32/1051400003/mscorlib.dll.REMOVED.git-id
@@ -1 +1 @@
-6a9ab2371c41b004ae342b7145a67a2583c21672
\ No newline at end of file
+8fffb09248c7a0c187464bfac6aad30fec5be792
\ No newline at end of file
diff --git a/mono/mini/version.h b/mono/mini/version.h
index 5e352bbb2e..b8c3c21f0a 100644
--- a/mono/mini/version.h
+++ b/mono/mini/version.h
@@ -1 +1 @@
-#define FULL_VERSION "explicit/ef73a49"
+#define FULL_VERSION "explicit/32ae8ad"
diff --git a/po/mcs/de.gmo b/po/mcs/de.gmo
index 3009160a83..e31c4bc40f 100644
Binary files a/po/mcs/de.gmo and b/po/mcs/de.gmo differ
diff --git a/po/mcs/de.po.REMOVED.git-id b/po/mcs/de.po.REMOVED.git-id
index 92ce943030..a070510807 100644
--- a/po/mcs/de.po.REMOVED.git-id
+++ b/po/mcs/de.po.REMOVED.git-id
@@ -1 +1 @@
-ef959d144578423707ca4759fd983126329c1825
\ No newline at end of file
+4c9830bc6a74d7cd3ce4f46b992fc2cdd5c3f370
\ No newline at end of file
diff --git a/po/mcs/es.gmo b/po/mcs/es.gmo
index eba2ef7aad..4a4e9abb3f 100644
Binary files a/po/mcs/es.gmo and b/po/mcs/es.gmo differ
diff --git a/po/mcs/es.po.REMOVED.git-id b/po/mcs/es.po.REMOVED.git-id
index 417322746f..2ebe689529 100644
--- a/po/mcs/es.po.REMOVED.git-id
+++ b/po/mcs/es.po.REMOVED.git-id
@@ -1 +1 @@
-cd29947cabf89d5fc078b042bd5aec5c03dbfe7d
\ No newline at end of file
+dae1feabe6d3a40716cab41a1dfb5643c372bf83
\ No newline at end of file
diff --git a/po/mcs/ja.gmo b/po/mcs/ja.gmo
index 64d4881d32..3def2139de 100644
Binary files a/po/mcs/ja.gmo and b/po/mcs/ja.gmo differ
diff --git a/po/mcs/ja.po.REMOVED.git-id b/po/mcs/ja.po.REMOVED.git-id
index 0f7791ffe1..d456ab98e8 100644
--- a/po/mcs/ja.po.REMOVED.git-id
+++ b/po/mcs/ja.po.REMOVED.git-id
@@ -1 +1 @@
-b6b7fff5dfaa2b225d6ad637b312d2dcabebb1a8
\ No newline at end of file
+e76bd7bab711503558c5479ffcc5870147a893ff
\ No newline at end of file
diff --git a/po/mcs/mcs.pot b/po/mcs/mcs.pot
index 54c5745868..44248b464b 100644
--- a/po/mcs/mcs.pot
+++ b/po/mcs/mcs.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: mono 5.14.0.84\n"
+"Project-Id-Version: mono 5.14.0.87\n"
 "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
-"POT-Creation-Date: 2018-05-16 08:17+0000\n"
+"POT-Creation-Date: 2018-05-19 08:16+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/po/mcs/pt_BR.gmo b/po/mcs/pt_BR.gmo
index 6ea2e6509c..c03009b7bb 100644
Binary files a/po/mcs/pt_BR.gmo and b/po/mcs/pt_BR.gmo differ
diff --git a/po/mcs/pt_BR.po.REMOVED.git-id b/po/mcs/pt_BR.po.REMOVED.git-id
index d838f06cbb..d23bef50e7 100644
--- a/po/mcs/pt_BR.po.REMOVED.git-id
+++ b/po/mcs/pt_BR.po.REMOVED.git-id
@@ -1 +1 @@
-716bc7bb4d29c455ce1af5b07a810f685cacf2da
\ No newline at end of file
+21960890344582b02df817bc0ce9e2bce91f7d61
\ No newline at end of file