diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f04b97a4f5f884c77da25cdaab567ecb47d76b52..20e0b693bd8abdac79d9527f086db8b1152c4f75 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
 2015-05-02  Jonathan Wakely  <jwakely@redhat.com>
 
+	PR libstdc++/51617
+	* include/std/future (async): Change default policy to launch::async.
+
 	* include/experimental/any (any::_Storage): Fix alignment of buffer.
 	(any::_Internal): Check alignment of type.
 	* testsuite/experimental/any/cons/aligned.cc: New.
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index fc3f8162ae6da42817b0b7dd3f1943c9eab25f4e..a67db98853f5afb45b0ac593d80025fad09c0222 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -1704,7 +1704,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       typedef typename result_of<_Fn(_Args...)>::type result_type;
       std::shared_ptr<__future_base::_State_base> __state;
-      if ((__policy & (launch::async|launch::deferred)) == launch::async)
+      if ((__policy & launch::async) == launch::async)
 	{
 	  __state = __future_base::_S_make_async_state(std::__bind_simple(
               std::forward<_Fn>(__fn), std::forward<_Args>(__args)...));