Index: uspace/lib/cpp/include/__bits/thread/packaged_task.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/thread/packaged_task.hpp	(revision 5ab9df434a5fdcf2d1cb3315c49a3fed7e5d0f52)
+++ uspace/lib/cpp/include/__bits/thread/packaged_task.hpp	(revision 4dfb2590ef2bcca80b040a49c06efd9c28ffc40f)
@@ -177,5 +177,5 @@
             }
 
-            void make_ready_at_thread_exit(Args...)
+            void make_ready_at_thread_exit(Args... args)
             {
                 if (!state_)
Index: uspace/lib/cpp/include/__bits/thread/promise.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/thread/promise.hpp	(revision 5ab9df434a5fdcf2d1cb3315c49a3fed7e5d0f52)
+++ uspace/lib/cpp/include/__bits/thread/promise.hpp	(revision 4dfb2590ef2bcca80b040a49c06efd9c28ffc40f)
@@ -227,10 +227,10 @@
                 try
                 {
-                    state_->set_value(invoke(func_, args...), false);
+                    this->state_->set_value(val, false);
                     aux::set_state_value_at_thread_exit(this->state_);
                 }
                 catch(const exception& __exception)
                 {
-                    state_->set_exception(make_exception_ptr(__exception), false);
+                    this->state_->set_exception(make_exception_ptr(__exception), false);
                     aux::set_state_exception_at_thread_exit(this->state_);
                 }
@@ -250,10 +250,10 @@
                 try
                 {
-                    state_->set_value(invoke(func_, args...), false);
+                    this->state_->set_value(forward(val), false);
                     aux::set_state_value_at_thread_exit(this->state_);
                 }
                 catch(const exception& __exception)
                 {
-                    state_->set_exception(make_exception_ptr(__exception), false);
+                    this->state_->set_exception(make_exception_ptr(__exception), false);
                     aux::set_state_exception_at_thread_exit(this->state_);
                 }
@@ -329,10 +329,10 @@
                 try
                 {
-                    state_->set_value(invoke(func_, args...), false);
+                    this->state_->set_value(&val, false);
                     aux::set_state_value_at_thread_exit(this->state_);
                 }
                 catch(const exception& __exception)
                 {
-                    state_->set_exception(make_exception_ptr(__exception), false);
+                    this->state_->set_exception(make_exception_ptr(__exception), false);
                     aux::set_state_exception_at_thread_exit(this->state_);
                 }
