--- /dev/null
+---
+ libs/locale/build/Jamfile.v2 | 63 ++++++--------------------------------
+ libs/locale/build/has_icu_test.cpp | 4 ---
+ libs/regex/build/Jamfile.v2 | 47 +++++++---------------------
+ 3 files changed, 20 insertions(+), 94 deletions(-)
+
+diff --git a/libs/locale/build/Jamfile.v2 b/libs/locale/build/Jamfile.v2
+index 578e722..5f25917 100644
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
+@@ -70,62 +70,17 @@ if $(ICU_LINK)
+ }
+ else
+ {
+- searched-lib icuuc : : <name>icuuc
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuuc : : <toolset>msvc
+- <variant>debug
+- <name>icuucd
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuuc : : <name>this_is_an_invalid_library_name ;
+-
+- searched-lib icudt : : <search>$(ICU_PATH)/lib
+- <name>icudata
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icudt : : <search>$(ICU_PATH)/lib
+- <name>icudt
+- <toolset>msvc
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icudt : : <name>this_is_an_invalid_library_name ;
+-
+- searched-lib icuin : : <search>$(ICU_PATH)/lib
+- <name>icui18n
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuin : : <toolset>msvc
+- <variant>debug
+- <name>icuind
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuin : : <toolset>msvc
+- <variant>release
+- <name>icuin
+- <search>$(ICU_PATH)/lib
+- <link>shared
+- <runtime-link>shared ;
+-
+- searched-lib icuin : : <name>this_is_an_invalid_library_name ;
+-
+- explicit icuuc icudt icuin ;
++ alias icuuc : /user-config//icuuc ;
++ alias icuin : /user-config//icuin ;
++ alias icudt : /user-config//icudt ;
++
++ explicit icuuc icuin icudt ;
+
+ ICU_OPTS = <include>$(ICU_PATH)/include
+- <library>icuuc/<link>shared/<runtime-link>shared
+- <library>icudt/<link>shared/<runtime-link>shared
+- <library>icuin/<link>shared/<runtime-link>shared
+- <dll-path>$(ICU_PATH)/bin
+- <runtime-link>shared ;
++ <library>icuuc
++ <library>icuin
++ <library>icudt
++ <dll-path>$(ICU_PATH)/bin ;
+
+
+
+diff --git a/libs/locale/build/has_icu_test.cpp b/libs/locale/build/has_icu_test.cpp
+index 9419b30..ed9be05 100644
+--- a/libs/locale/build/has_icu_test.cpp
++++ b/libs/locale/build/has_icu_test.cpp
+@@ -15,10 +15,6 @@
+ #include <unicode/uchar.h>
+ #include <unicode/coll.h>
+
+-#if defined(_MSC_VER) && !defined(_DLL)
+-#error "Mixing ICU with a static runtime doesn't work"
+-#endif
+-
+ int main()
+ {
+ icu::Locale loc;
+diff --git a/libs/regex/build/Jamfile.v2 b/libs/regex/build/Jamfile.v2
+index 58fd1fb..76ee9f4 100644
+--- a/libs/regex/build/Jamfile.v2
++++ b/libs/regex/build/Jamfile.v2
+@@ -48,50 +48,25 @@ if ! $(disable-icu)
+ }
+ else
+ {
+- lib icuuc : : <runtime-link>shared <conditional>@path_options ;
+- lib icuuc : : <toolset>msvc <variant>debug <name>icuucd <runtime-link>shared <conditional>@path_options ;
+- lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>icuucd <runtime-link>shared <conditional>@path_options ;
+- lib icuuc : : <name>sicuuc <runtime-link>static <conditional>@path_options ;
+- lib icuuc : : <toolset>msvc <variant>debug <name>sicuucd <runtime-link>static <conditional>@path_options ;
+- lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>sicuucd <runtime-link>static <conditional>@path_options ;
+- lib icuuc : : <name>this_is_an_invalid_library_name ;
+-
+- lib icudt : : <name>icudata <runtime-link>shared <conditional>@path_options ;
+- lib icudt : : <name>icudt <toolset>msvc <runtime-link>shared <conditional>@path_options ;
+- lib icudt : : <name>icudt <toolset>intel <target-os>windows <runtime-link>shared <conditional>@path_options ;
+- lib icudt : : <name>sicudata <runtime-link>static <conditional>@path_options ;
+- lib icudt : : <name>sicudt <toolset>msvc <runtime-link>static <conditional>@path_options ;
+- lib icudt : : <name>sicudt <toolset>intel <target-os>windows <runtime-link>static <conditional>@path_options ;
+- lib icudt : : <name>this_is_an_invalid_library_name ;
+-
+- lib icuin : : <name>icui18n <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <variant>debug <name>icuind <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <name>icuin <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>icuind <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <name>icuin <runtime-link>shared <conditional>@path_options ;
+- lib icuin : : <name>sicui18n <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <variant>debug <name>sicuind <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>msvc <name>sicuin <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>sicuind <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <toolset>intel <target-os>windows <name>sicuin <runtime-link>static <conditional>@path_options ;
+- lib icuin : : <name>this_is_an_invalid_library_name ;
++
++ alias icuuc : /user-config//icuuc ;
++ alias icuin : /user-config//icuin ;
++ alias icudt : /user-config//icudt ;
++
++ explicit icuuc icuin icudt ;
+
+ ICU_OPTS =
+ <include>$(ICU_PATH)/include
+- <runtime-link>shared:<library>icuuc/<link>shared
+- <runtime-link>shared:<library>icudt/<link>shared
+- <runtime-link>shared:<library>icuin/<link>shared
+- <runtime-link>static:<library>icuuc
+- <runtime-link>static:<library>icudt
+- <runtime-link>static:<library>icuin
+- <define>BOOST_HAS_ICU=1
+- <runtime-link>static:<define>U_STATIC_IMPLEMENTATION=1
++ <library>icuuc
++ <library>icudt
++ <library>icuin
++ <define>BOOST_HAS_ICU=1
+ ;
+ }
+
+ }
+
+-unit-test has_icu : has_icu_test.cpp : $(ICU_OPTS) ;
++exe has_icu : has_icu_test.cpp : $(ICU_OPTS) ;
+ explicit has_icu ;
+
+ alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ;
+--
+2.12.2.windows.2
+