Index: src/Concurrency/Actors.cpp
===================================================================
--- src/Concurrency/Actors.cpp	(revision d3d54b3f6c6e72820dcc274dd66a67aa194b7ded)
+++ src/Concurrency/Actors.cpp	(revision 301e9f747c630e38dbcd276c1902135e0f3737aa)
@@ -401,6 +401,14 @@
 			));
 
-			// Generates: return receiver;
-			sendBody->push_back( new ReturnStmt( decl->location, new NameExpr( decl->location, "receiver" ) ) );
+			// Generates: &receiver_ret = &receiver; return receiver_ret;
+			// Note: This is the general pattern used as a "return convention".
+			sendBody->push_back( new ExprStmt( decl->location,
+				ast::UntypedExpr::createAssign( decl->location,
+					new AddressExpr( new NameExpr( decl->location, "receiver_ret" ) ),
+					new AddressExpr( new NameExpr( decl->location, "receiver" ) )
+				)
+			) );
+			sendBody->push_back( new ReturnStmt( decl->location,
+				new NameExpr( decl->location, "receiver_ret" ) ) );
 
 			// put it all together into the complete function decl from above
