Move result of a yield_context operation.
diff --git a/asio/include/asio/impl/spawn.hpp b/asio/include/asio/impl/spawn.hpp
index a6c5561..89d614b 100644
--- a/asio/include/asio/impl/spawn.hpp
+++ b/asio/include/asio/impl/spawn.hpp
@@ -187,7 +187,7 @@
     handler_.coro_.reset(); // Must not hold shared_ptr to coro while suspended.
     ca_();
     if (!out_ec_ && ec_) throw asio::system_error(ec_);
-    return value_;
+    return ASIO_MOVE_CAST(type)(value_);
   }
 
 private: