Index: src/Concurrency/Keywords.cc
===================================================================
--- src/Concurrency/Keywords.cc	(revision 6c3a5ac153db4a253fa595d297454e6bac931353)
+++ src/Concurrency/Keywords.cc	(revision 2cd949bdf646e348c3d82fdbc4bc3da895676621)
@@ -309,15 +309,8 @@
 			if( !type_decl ) SemanticError( cast, context_error );
 			if( !dtor_decl ) SemanticError( cast, context_error );
-			Expression * arg = cast->arg;
-			cast->arg = nullptr;
-			delete cast;
-			return new CastExpr(
-				UntypedExpr::createDeref(
-					new UntypedExpr( new NameExpr( getter_name ), { arg } )
-				),
-				new ReferenceType(
-					noQualifiers,
-					new StructInstType( noQualifiers, type_decl ) )
-				);
+			assert( cast->result == nullptr );
+			cast->set_result( new ReferenceType( noQualifiers, new StructInstType( noQualifiers, type_decl ) ) );
+			cast->concrete_target.field  = field_name;
+			cast->concrete_target.getter = getter_name;
 		}
 		return cast;
