Use operator[] rather than operator(), to avoid potential confusion from
having basic_yield_context look like a function object.
diff --git a/asio/include/asio/spawn.hpp b/asio/include/asio/spawn.hpp
index 3526184..7a06c1c 100644
--- a/asio/include/asio/spawn.hpp
+++ b/asio/include/asio/spawn.hpp
@@ -46,7 +46,7 @@
   {
   }
 
-  basic_yield_context operator()(asio::error_code& ec)
+  basic_yield_context operator[](asio::error_code& ec)
   {
     basic_yield_context tmp(*this);
     tmp.ec_ = &ec;
diff --git a/asio/src/examples/cpp03/spawn/echo_server.cpp b/asio/src/examples/cpp03/spawn/echo_server.cpp
index 567154e..7071534 100644
--- a/asio/src/examples/cpp03/spawn/echo_server.cpp
+++ b/asio/src/examples/cpp03/spawn/echo_server.cpp
@@ -70,7 +70,7 @@
     while (socket_.is_open())
     {
       asio::error_code ignored_ec;
-      timer_.async_wait(yield(ignored_ec));
+      timer_.async_wait(yield[ignored_ec]);
       if (timer_.expires_from_now() <= boost::posix_time::seconds(0))
         socket_.close();
     }
@@ -90,7 +90,7 @@
   {
     asio::error_code ec;
     boost::shared_ptr<session> new_session(new session(io_service));
-    acceptor.async_accept(new_session->socket(), yield(ec));
+    acceptor.async_accept(new_session->socket(), yield[ec]);
     if (!ec) new_session->go();
   }
 }
diff --git a/asio/src/examples/cpp11/spawn/echo_server.cpp b/asio/src/examples/cpp11/spawn/echo_server.cpp
index 24add43..b777ed2 100644
--- a/asio/src/examples/cpp11/spawn/echo_server.cpp
+++ b/asio/src/examples/cpp11/spawn/echo_server.cpp
@@ -57,7 +57,7 @@
           while (socket_.is_open())
           {
             asio::error_code ignored_ec;
-            timer_.async_wait(yield(ignored_ec));
+            timer_.async_wait(yield[ignored_ec]);
             if (timer_.expires_from_now() <= std::chrono::seconds(0))
               socket_.close();
           }
@@ -92,7 +92,7 @@
           {
             asio::error_code ec;
             tcp::socket socket(io_service);
-            acceptor.async_accept(socket, yield(ec));
+            acceptor.async_accept(socket, yield[ec]);
             if (!ec) std::make_shared<session>(std::move(socket))->go();
           }
         });