Index: src/Concurrency/Actors.cpp
===================================================================
--- src/Concurrency/Actors.cpp	(revision 1ee74df6749176dd405cc6c28df1405beb491b8a)
+++ src/Concurrency/Actors.cpp	(revision ab94c37e5724808772c34d54ef892acf6cdedfb6)
@@ -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
