asio version 1.12.1 released
diff --git a/asio/README b/asio/README
index 661e726..7e4f25c 100644
--- a/asio/README
+++ b/asio/README
@@ -1,4 +1,4 @@
-asio version 1.12.0
-Released Sunday, 04 March 2018.
+asio version 1.12.1
+Released Sunday, 15 April 2018.
 
 See doc/index.html for API documentation and a tutorial.
diff --git a/asio/asio.manifest b/asio/asio.manifest
index e69d476..08fcfe9 100644
--- a/asio/asio.manifest
+++ b/asio/asio.manifest
@@ -12,6 +12,7 @@
 /doc/asio/examples/
 /doc/asio/examples/cpp03_examples.html
 /doc/asio/examples/cpp11_examples.html
+/doc/asio/examples/cpp17_examples.html
 /doc/asio/examples.html
 /doc/asio/history.html
 /doc/asio/index.html
@@ -24,6 +25,7 @@
 /doc/asio/overview/core/buffers.html
 /doc/asio/overview/core/concurrency_hint.html
 /doc/asio/overview/core/coroutine.html
+/doc/asio/overview/core/coroutines_ts.html
 /doc/asio/overview/core/handler_tracking.html
 /doc/asio/overview/core.html
 /doc/asio/overview/core/line_based.html
@@ -1768,6 +1770,39 @@
 /doc/asio/reference/executor_work_guard.html
 /doc/asio/reference/executor_work_guard/owns_work.html
 /doc/asio/reference/executor_work_guard/reset.html
+/doc/asio/reference/experimental__awaitable/
+/doc/asio/reference/experimental__awaitable/_awaitable.html
+/doc/asio/reference/experimental__awaitable/awaitable.html
+/doc/asio/reference/experimental__awaitable/executor_type.html
+/doc/asio/reference/experimental__awaitable.html
+/doc/asio/reference/experimental__awaitable/value_type.html
+/doc/asio/reference/experimental__await_token/
+/doc/asio/reference/experimental__await_token/await_token/
+/doc/asio/reference/experimental__await_token/await_token.html
+/doc/asio/reference/experimental__await_token/await_token/overload1.html
+/doc/asio/reference/experimental__await_token/await_token/overload2.html
+/doc/asio/reference/experimental__await_token/executor_type.html
+/doc/asio/reference/experimental__await_token/get_executor.html
+/doc/asio/reference/experimental__await_token.html
+/doc/asio/reference/experimental__co_spawn/
+/doc/asio/reference/experimental__co_spawn.html
+/doc/asio/reference/experimental__co_spawn/overload1.html
+/doc/asio/reference/experimental__co_spawn/overload2.html
+/doc/asio/reference/experimental__co_spawn/overload3.html
+/doc/asio/reference/experimental__detached.html
+/doc/asio/reference/experimental__detached_t/
+/doc/asio/reference/experimental__detached_t/detached_t.html
+/doc/asio/reference/experimental__detached_t.html
+/doc/asio/reference/experimental__redirect_error.html
+/doc/asio/reference/experimental__redirect_error_t/
+/doc/asio/reference/experimental__redirect_error_t/ec_.html
+/doc/asio/reference/experimental__redirect_error_t.html
+/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html
+/doc/asio/reference/experimental__redirect_error_t/token_.html
+/doc/asio/reference/experimental__this_coro__executor.html
+/doc/asio/reference/experimental__this_coro__executor_t.html
+/doc/asio/reference/experimental__this_coro__token.html
+/doc/asio/reference/experimental__this_coro__token_t.html
 /doc/asio/reference/generic__basic_endpoint/
 /doc/asio/reference/generic__basic_endpoint/basic_endpoint/
 /doc/asio/reference/generic__basic_endpoint/basic_endpoint.html
@@ -2573,6 +2608,7 @@
 /doc/asio/reference/is_write_buffered.html
 /doc/asio/reference/is_write_buffered/value.html
 /doc/asio/reference/IteratorConnectHandler.html
+/doc/asio/reference/LegacyCompletionHandler.html
 /doc/asio/reference/local__basic_endpoint/
 /doc/asio/reference/local__basic_endpoint/basic_endpoint/
 /doc/asio/reference/local__basic_endpoint/basic_endpoint.html
@@ -3995,6 +4031,15 @@
 /include/asio/execution_context.hpp
 /include/asio/executor.hpp
 /include/asio/executor_work_guard.hpp
+/include/asio/experimental/
+/include/asio/experimental/co_spawn.hpp
+/include/asio/experimental/detached.hpp
+/include/asio/experimental.hpp
+/include/asio/experimental/impl/
+/include/asio/experimental/impl/co_spawn.hpp
+/include/asio/experimental/impl/detached.hpp
+/include/asio/experimental/impl/redirect_error.hpp
+/include/asio/experimental/redirect_error.hpp
 /include/asio/generic/
 /include/asio/generic/basic_endpoint.hpp
 /include/asio/generic/datagram_protocol.hpp
@@ -4357,10 +4402,10 @@
 /src/examples/cpp03/timeouts/
 /src/examples/cpp03/timeouts/async_tcp_client.cpp
 /src/examples/cpp03/timeouts/blocking_tcp_client.cpp
+/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp
 /src/examples/cpp03/timeouts/blocking_udp_client.cpp
 /src/examples/cpp03/timeouts/server.cpp
 /src/examples/cpp03/timers/
-/src/examples/cpp03/timers/tick_count_timer.cpp
 /src/examples/cpp03/timers/time_t_timer.cpp
 /src/examples/cpp03/tutorial/
 /src/examples/cpp03/tutorial/daytime1/
@@ -4478,6 +4523,15 @@
 /src/examples/cpp14/iostreams/http_client.cpp
 /src/examples/cpp14/Makefile.am
 /src/examples/cpp14/Makefile.in
+/src/examples/cpp17/
+/src/examples/cpp17/coroutines_ts/
+/src/examples/cpp17/coroutines_ts/chat_server.cpp
+/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp
+/src/examples/cpp17/coroutines_ts/echo_server.cpp
+/src/examples/cpp17/coroutines_ts/range_based_for.cpp
+/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp
+/src/examples/cpp17/Makefile.am
+/src/examples/cpp17/Makefile.in
 /src/Makefile.am
 /src/Makefile.in
 /src/Makefile.mgw
diff --git a/asio/boost_asio.manifest b/asio/boost_asio.manifest
index 98efac6..43664df 100644
--- a/asio/boost_asio.manifest
+++ b/asio/boost_asio.manifest
@@ -288,6 +288,15 @@
 /boost/asio/execution_context.hpp
 /boost/asio/executor.hpp
 /boost/asio/executor_work_guard.hpp
+/boost/asio/experimental/
+/boost/asio/experimental/co_spawn.hpp
+/boost/asio/experimental/detached.hpp
+/boost/asio/experimental.hpp
+/boost/asio/experimental/impl/
+/boost/asio/experimental/impl/co_spawn.hpp
+/boost/asio/experimental/impl/detached.hpp
+/boost/asio/experimental/impl/redirect_error.hpp
+/boost/asio/experimental/redirect_error.hpp
 /boost/asio/generic/
 /boost/asio/generic/basic_endpoint.hpp
 /boost/asio/generic/datagram_protocol.hpp
@@ -648,10 +657,10 @@
 /doc/html/boost_asio/example/cpp03/timeouts/
 /doc/html/boost_asio/example/cpp03/timeouts/async_tcp_client.cpp
 /doc/html/boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp
+/doc/html/boost_asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp
 /doc/html/boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp
 /doc/html/boost_asio/example/cpp03/timeouts/server.cpp
 /doc/html/boost_asio/example/cpp03/timers/
-/doc/html/boost_asio/example/cpp03/timers/tick_count_timer.cpp
 /doc/html/boost_asio/example/cpp03/timers/time_t_timer.cpp
 /doc/html/boost_asio/example/cpp03/windows/
 /doc/html/boost_asio/example/cpp03/windows/transmit_file.cpp
@@ -718,9 +727,17 @@
 /doc/html/boost_asio/example/cpp11/spawn/
 /doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp
 /doc/html/boost_asio/example/cpp11/spawn/parallel_grep.cpp
+/doc/html/boost_asio/example/cpp17/
+/doc/html/boost_asio/example/cpp17/coroutines_ts/
+/doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp
+/doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp
 /doc/html/boost_asio/examples/
 /doc/html/boost_asio/examples/cpp03_examples.html
 /doc/html/boost_asio/examples/cpp11_examples.html
+/doc/html/boost_asio/examples/cpp17_examples.html
 /doc/html/boost_asio/examples.html
 /doc/html/boost_asio/history.html
 /doc/html/boost_asio.html
@@ -734,6 +751,7 @@
 /doc/html/boost_asio/overview/core/buffers.html
 /doc/html/boost_asio/overview/core/concurrency_hint.html
 /doc/html/boost_asio/overview/core/coroutine.html
+/doc/html/boost_asio/overview/core/coroutines_ts.html
 /doc/html/boost_asio/overview/core/handler_tracking.html
 /doc/html/boost_asio/overview/core.html
 /doc/html/boost_asio/overview/core/line_based.html
@@ -2451,6 +2469,39 @@
 /doc/html/boost_asio/reference/executor_work_guard.html
 /doc/html/boost_asio/reference/executor_work_guard/owns_work.html
 /doc/html/boost_asio/reference/executor_work_guard/reset.html
+/doc/html/boost_asio/reference/experimental__awaitable/
+/doc/html/boost_asio/reference/experimental__awaitable/_awaitable.html
+/doc/html/boost_asio/reference/experimental__awaitable/awaitable.html
+/doc/html/boost_asio/reference/experimental__awaitable/executor_type.html
+/doc/html/boost_asio/reference/experimental__awaitable.html
+/doc/html/boost_asio/reference/experimental__awaitable/value_type.html
+/doc/html/boost_asio/reference/experimental__await_token/
+/doc/html/boost_asio/reference/experimental__await_token/await_token/
+/doc/html/boost_asio/reference/experimental__await_token/await_token.html
+/doc/html/boost_asio/reference/experimental__await_token/await_token/overload1.html
+/doc/html/boost_asio/reference/experimental__await_token/await_token/overload2.html
+/doc/html/boost_asio/reference/experimental__await_token/executor_type.html
+/doc/html/boost_asio/reference/experimental__await_token/get_executor.html
+/doc/html/boost_asio/reference/experimental__await_token.html
+/doc/html/boost_asio/reference/experimental__co_spawn/
+/doc/html/boost_asio/reference/experimental__co_spawn.html
+/doc/html/boost_asio/reference/experimental__co_spawn/overload1.html
+/doc/html/boost_asio/reference/experimental__co_spawn/overload2.html
+/doc/html/boost_asio/reference/experimental__co_spawn/overload3.html
+/doc/html/boost_asio/reference/experimental__detached.html
+/doc/html/boost_asio/reference/experimental__detached_t/
+/doc/html/boost_asio/reference/experimental__detached_t/detached_t.html
+/doc/html/boost_asio/reference/experimental__detached_t.html
+/doc/html/boost_asio/reference/experimental__redirect_error.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t/
+/doc/html/boost_asio/reference/experimental__redirect_error_t/ec_.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t/redirect_error_t.html
+/doc/html/boost_asio/reference/experimental__redirect_error_t/token_.html
+/doc/html/boost_asio/reference/experimental__this_coro__executor.html
+/doc/html/boost_asio/reference/experimental__this_coro__executor_t.html
+/doc/html/boost_asio/reference/experimental__this_coro__token.html
+/doc/html/boost_asio/reference/experimental__this_coro__token_t.html
 /doc/html/boost_asio/reference/generic__basic_endpoint/
 /doc/html/boost_asio/reference/generic__basic_endpoint/basic_endpoint/
 /doc/html/boost_asio/reference/generic__basic_endpoint/basic_endpoint.html
@@ -3274,6 +3325,7 @@
 /doc/html/boost_asio/reference/is_write_buffered.html
 /doc/html/boost_asio/reference/is_write_buffered/value.html
 /doc/html/boost_asio/reference/IteratorConnectHandler.html
+/doc/html/boost_asio/reference/LegacyCompletionHandler.html
 /doc/html/boost_asio/reference/local__basic_endpoint/
 /doc/html/boost_asio/reference/local__basic_endpoint/basic_endpoint/
 /doc/html/boost_asio/reference/local__basic_endpoint/basic_endpoint.html
@@ -4319,6 +4371,7 @@
 /libs/asio/doc/overview/buffers.qbk
 /libs/asio/doc/overview/concurrency_hint.qbk
 /libs/asio/doc/overview/coroutine.qbk
+/libs/asio/doc/overview/coroutines_ts.qbk
 /libs/asio/doc/overview/cpp2011.qbk
 /libs/asio/doc/overview/handler_tracking.qbk
 /libs/asio/doc/overview/implementation.qbk
@@ -4375,6 +4428,7 @@
 /libs/asio/doc/requirements/IoControlCommand.qbk
 /libs/asio/doc/requirements/IoObjectService.qbk
 /libs/asio/doc/requirements/IteratorConnectHandler.qbk
+/libs/asio/doc/requirements/LegacyCompletionHandler.qbk
 /libs/asio/doc/requirements/MoveAcceptHandler.qbk
 /libs/asio/doc/requirements/MutableBufferSequence.qbk
 /libs/asio/doc/requirements/ProtoAllocator.qbk
@@ -4562,8 +4616,6 @@
 /libs/asio/example/cpp03/spawn/Jamfile.v2
 /libs/asio/example/cpp03/spawn/parallel_grep.cpp
 /libs/asio/example/cpp03/ssl/
-/libs/asio/example/cpp03/ssl/ca2.pem
-/libs/asio/example/cpp03/ssl/ca3.pem
 /libs/asio/example/cpp03/ssl/ca.pem
 /libs/asio/example/cpp03/ssl/client.cpp
 /libs/asio/example/cpp03/ssl/dh2048.pem
@@ -4574,12 +4626,12 @@
 /libs/asio/example/cpp03/timeouts/
 /libs/asio/example/cpp03/timeouts/async_tcp_client.cpp
 /libs/asio/example/cpp03/timeouts/blocking_tcp_client.cpp
+/libs/asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp
 /libs/asio/example/cpp03/timeouts/blocking_udp_client.cpp
 /libs/asio/example/cpp03/timeouts/Jamfile.v2
 /libs/asio/example/cpp03/timeouts/server.cpp
 /libs/asio/example/cpp03/timers/
 /libs/asio/example/cpp03/timers/Jamfile.v2
-/libs/asio/example/cpp03/timers/tick_count_timer.cpp
 /libs/asio/example/cpp03/timers/time_t_timer.cpp
 /libs/asio/example/cpp03/tutorial/
 /libs/asio/example/cpp03/tutorial/daytime1/
@@ -4677,6 +4729,7 @@
 /libs/asio/example/cpp11/invocation/prioritised_handlers.cpp
 /libs/asio/example/cpp11/iostreams/
 /libs/asio/example/cpp11/iostreams/http_client.cpp
+/libs/asio/example/cpp11/iostreams/Jamfile.v2
 /libs/asio/example/cpp11/local/
 /libs/asio/example/cpp11/local/connect_pair.cpp
 /libs/asio/example/cpp11/local/iostream_client.cpp
@@ -4694,16 +4747,13 @@
 /libs/asio/example/cpp11/spawn/echo_server.cpp
 /libs/asio/example/cpp11/spawn/Jamfile.v2
 /libs/asio/example/cpp11/spawn/parallel_grep.cpp
-/libs/asio/example/cpp14/
-/libs/asio/example/cpp14/executors/
-/libs/asio/example/cpp14/executors/actor.cpp
-/libs/asio/example/cpp14/executors/async_1.cpp
-/libs/asio/example/cpp14/executors/async_2.cpp
-/libs/asio/example/cpp14/executors/bank_account_1.cpp
-/libs/asio/example/cpp14/executors/bank_account_2.cpp
-/libs/asio/example/cpp14/executors/fork_join.cpp
-/libs/asio/example/cpp14/executors/pipeline.cpp
-/libs/asio/example/cpp14/executors/priority_scheduler.cpp
+/libs/asio/example/cpp17/
+/libs/asio/example/cpp17/coroutines_ts/
+/libs/asio/example/cpp17/coroutines_ts/chat_server.cpp
+/libs/asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp
+/libs/asio/example/cpp17/coroutines_ts/echo_server.cpp
+/libs/asio/example/cpp17/coroutines_ts/range_based_for.cpp
+/libs/asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp
 /libs/asio/index.html
 /libs/asio/meta/
 /libs/asio/meta/libraries.json
@@ -4878,6 +4928,7 @@
 /libs/system/src/
 /libs/system/src/error_code.cpp
 /libs/system/test/
+/libs/system/test/before_main_test.cpp
 /libs/system/test/config_test.cpp
 /libs/system/test/dynamic_link_test.cpp
 /libs/system/test/error_code_test.cpp
@@ -4901,9 +4952,13 @@
 /libs/system/test/msvc/system-dll/system-dll.vcxproj
 /libs/system/test/msvc/system.sln
 /libs/system/test/quick.cpp
+/libs/system/test/single_instance_1.cpp
+/libs/system/test/single_instance_2.cpp
+/libs/system/test/single_instance_test.cpp
 /libs/system/test/std_interop_test.cpp
 /libs/system/test/std_mismatch_test.cpp
 /libs/system/test/system_error_test.cpp
+/libs/system/test/throws_assign_fail.cpp
 /libs/system/test/throw_test.cpp
 /libs/system/.travis.yml
 /README.txt
diff --git a/asio/configure.ac b/asio/configure.ac
index 8bd324a..4e886ba 100644
--- a/asio/configure.ac
+++ b/asio/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(asio, [1.12.0])
+AC_INIT(asio, [1.12.1])
 AC_CONFIG_SRCDIR(include/asio.hpp)
 AM_MAINTAINER_MODE
 AM_INIT_AUTOMAKE([tar-ustar])
diff --git a/asio/include/asio/version.hpp b/asio/include/asio/version.hpp
index ee0313f..099ffdb 100644
--- a/asio/include/asio/version.hpp
+++ b/asio/include/asio/version.hpp
@@ -18,6 +18,6 @@
 // ASIO_VERSION % 100 is the sub-minor version
 // ASIO_VERSION / 100 % 1000 is the minor version
 // ASIO_VERSION / 100000 is the major version
-#define ASIO_VERSION 101200 // 1.12.0
+#define ASIO_VERSION 101201 // 1.12.1
 
 #endif // ASIO_VERSION_HPP