Index: tests/concurrency/actors/.expect/inline.txt
===================================================================
--- tests/concurrency/actors/.expect/inline.txt	(revision 8d6786bfc199bb439f5dd3e59d381e5a8e28f47a)
+++ tests/concurrency/actors/.expect/inline.txt	(revision 8d6786bfc199bb439f5dd3e59d381e5a8e28f47a)
@@ -0,0 +1,7 @@
+42
+2423
+d_msg dtor
+msg_wrapper dtor
+29079
+d_msg2 dtor
+msg_wrapper dtor
Index: tests/concurrency/actors/inline.cfa
===================================================================
--- tests/concurrency/actors/inline.cfa	(revision 8d6786bfc199bb439f5dd3e59d381e5a8e28f47a)
+++ tests/concurrency/actors/inline.cfa	(revision 8d6786bfc199bb439f5dd3e59d381e5a8e28f47a)
@@ -0,0 +1,57 @@
+#include <actor.hfa>
+#include <fstream.hfa>
+
+struct d_actor {
+    inline actor;
+};
+struct msg_wrapper {
+    int b;
+    inline message;
+};
+void ^?{}( msg_wrapper & this ) { sout | "msg_wrapper dtor"; }
+
+struct d_msg {
+    int m;
+    inline msg_wrapper;
+};
+void ?{}( d_msg & this, int m, int b ) { this.m = m; this.b = b; set_allocation( this, Delete ); }
+void ^?{}( d_msg & this ) { sout | "d_msg dtor"; }
+
+allocation receive( d_actor &, d_msg & msg ) {
+    sout | msg.m;
+    sout | msg.b;
+    return Finished;
+}
+
+struct d_msg2 {
+    int m;
+    inline msg_wrapper;
+};
+void ^?{}( d_msg2 & this ) { sout | "d_msg2 dtor";}
+
+allocation receive( d_actor &, d_msg2 & msg ) {
+    sout | msg.m;
+    return Finished;
+}
+
+int main() {
+    {
+        start_actor_system();                                // sets up executor
+        d_actor da;
+        d_msg * dm = alloc();
+        (*dm){ 42, 2423 };
+        da << *dm;
+        stop_actor_system();                                // waits until actors finish
+    }
+    {
+        start_actor_system();                                // sets up executor
+        d_actor da;
+        d_msg2 dm{ 29079 };
+        set_allocation( dm, Nodelete );
+        msg_wrapper * mw = &dm;
+        message * mg = &dm;
+        virtual_dtor * v = &dm;
+        da << dm;
+        stop_actor_system();                                // waits until actors finish
+    }
+}
