Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 609051813c60349c184d12910effd1a545a9afe1)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision f0743a7e72e778b467386d928b8ac3d3b5e5b100)
@@ -897,5 +897,5 @@
 		// sum cost and accumulate actuals
 		std::list<Expression*>& args = appExpr->get_args();
-		Cost cost = Cost::zero;
+		Cost cost = func.cost;
 		const ArgPack* pack = &result;
 		while ( pack->expr ) {
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 609051813c60349c184d12910effd1a545a9afe1)
+++ src/SynTree/Expression.cc	(revision f0743a7e72e778b467386d928b8ac3d3b5e5b100)
@@ -356,6 +356,7 @@
 	Type * res = member->get_type()->clone();
 	sub.apply( res );
-	set_result( res );
-	get_result()->set_lvalue( true );
+	result = res;
+	result->set_lvalue( true );
+	result->get_qualifiers() |= aggregate->result->get_qualifiers();
 }
 
