Index: uspace/lib/cpp/include/__bits/thread/promise.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/thread/promise.hpp	(revision cf2792705d47bab8766bafc93b628620a7f0814d)
+++ uspace/lib/cpp/include/__bits/thread/promise.hpp	(revision 396b2343d75894917de50285dd82e600ceb0c3e8)
@@ -107,4 +107,7 @@
                 void abandon_state_()
                 {
+                    if (!state_)
+                        return;
+
                     /**
                      * Note: This is the 'abandon' move described in
@@ -116,4 +119,17 @@
                      * 2) Release the state.
                      */
+
+                    if (!state_->is_set())
+                    {
+                        // TODO: Store future_error.
+                        state_->mark_set(true);
+                    }
+
+                    if (state_->decrement())
+                    {
+                        state_->destroy();
+                        delete state_;
+                        state_ = nullptr;
+                    }
                 }
 
