Index: libcfa/src/concurrency/actor.hfa
===================================================================
--- libcfa/src/concurrency/actor.hfa	(revision 2856044a458ffcb609400db7e869d2a1b0030058)
+++ libcfa/src/concurrency/actor.hfa	(revision 858350aeda11d90bc7dba1d54c8df962b4643ed5)
@@ -662,12 +662,14 @@
 
 // Default messages to send to any actor to change status
-// struct __DeleteMsg { inline message; } DeleteMsg;
-// void ?{}( __DeleteMsg & this ) { ((message &) this){ Finished }; }
-// struct __DestroyMsg { inline message; } DestroyMsg;
-// void ?{}( __DestroyMsg & this ) { ((message &) this){ Finished }; }
-// struct __FinishedMsg { inline message; } FinishedMsg;
-// void ?{}( __FinishedMsg & this ) { ((message &) this){ Finished }; }
-
-// Allocation receive( actor & this, __DeleteMsg & msg ) { return Delete; }
-// Allocation receive( actor & this, __DestroyMsg & msg ) { return Destroy; }
-// Allocation receive( actor & this, __FinishedMsg & msg ) { return Finished; }
+// assigned at creation to __base_msg_finished to avoid unused message warning
+message __base_msg_finished @= { .allocation_ : Finished };
+struct __DeleteMsg { inline message; } DeleteMsg = __base_msg_finished;
+struct __DestroyMsg { inline message; } DestroyMsg = __base_msg_finished;
+struct __FinishedMsg { inline message; } FinishedMsg = __base_msg_finished;
+void ?{}( __DeleteMsg & this, Allocation status ) { ((message &) this){ status }; }
+void ?{}( __DestroyMsg & this, Allocation status ) { ((message &) this){ status }; }
+void ?{}( __FinishedMsg & this, Allocation status ) { ((message &) this){ status }; }
+
+Allocation receive( actor & this, __DeleteMsg & msg ) { return Delete; }
+Allocation receive( actor & this, __DestroyMsg & msg ) { return Destroy; }
+Allocation receive( actor & this, __FinishedMsg & msg ) { return Finished; }
Index: tests/concurrent/actors/.expect/poison.txt
===================================================================
--- tests/concurrent/actors/.expect/poison.txt	(revision 858350aeda11d90bc7dba1d54c8df962b4643ed5)
+++ tests/concurrent/actors/.expect/poison.txt	(revision 858350aeda11d90bc7dba1d54c8df962b4643ed5)
@@ -0,0 +1,5 @@
+Start
+Finished
+Delete
+Destroy
+Done
Index: tests/concurrent/actors/poison.cfa
===================================================================
--- tests/concurrent/actors/poison.cfa	(revision 858350aeda11d90bc7dba1d54c8df962b4643ed5)
+++ tests/concurrent/actors/poison.cfa	(revision 858350aeda11d90bc7dba1d54c8df962b4643ed5)
@@ -0,0 +1,45 @@
+#include <actor.hfa>
+#include <fstream.hfa>
+#include <stdlib.hfa>
+#include <string.h>
+#include <stdio.h>
+
+struct Server { inline actor; };
+
+int main() {
+    sout | "Start";
+
+    sout | "Finished";
+    {
+    start_actor_system();
+    Server s[10];
+    for ( i; 10 ) {
+        s[i] << FinishedMsg;
+    }
+    stop_actor_system();
+    }
+
+    sout | "Delete";
+    {
+    start_actor_system();
+    for ( i; 10 ) {
+        Server * s = alloc();
+        (*s){};
+        (*s) << DeleteMsg;
+    }
+    stop_actor_system();
+    }
+
+    sout | "Destroy";
+    {
+    start_actor_system();
+    Server s[10];
+    for ( i; 10 ) {
+        s[i] << DestroyMsg;
+    }
+    stop_actor_system();
+    }
+
+    sout | "Done";
+    return 0;
+}
