Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision b617e4bc8efed571f2132d8e906a00514e74c8e1)
+++ src/GenPoly/Box.cc	(revision dc2e7e0625c69ea1a4e1ba396569d2cd6cec9f99)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Thu Apr 14 15:57:46 2016
+// Last Modified On : Mon Apr 18 13:22:15 2016
 // Update Count     : 295
 //
@@ -784,4 +784,5 @@
 						arg++;
 					} else {
+						/// xxx - should this be an assertion?
 						throw SemanticError( "unbound type variable in application ", appExpr );
 					} // if
Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision b617e4bc8efed571f2132d8e906a00514e74c8e1)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision dc2e7e0625c69ea1a4e1ba396569d2cd6cec9f99)
@@ -10,5 +10,5 @@
 // Created On       : Sat May 16 23:52:08 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Feb 10 17:00:04 2016
+// Last Modified On : Wed Apr 20 14:24:03 2016
 // Update Count     : 24
 //
@@ -982,4 +982,8 @@
 		} // for
 	}
+
+	void AlternativeFinder::visit( ImplicitCopyCtorExpr * impCpCtorExpr ) {
+		alternatives.push_back( Alternative( impCpCtorExpr->clone(), env, Cost::zero ) );
+	}
 } // namespace ResolvExpr
 
Index: src/ResolvExpr/AlternativeFinder.h
===================================================================
--- src/ResolvExpr/AlternativeFinder.h	(revision b617e4bc8efed571f2132d8e906a00514e74c8e1)
+++ src/ResolvExpr/AlternativeFinder.h	(revision dc2e7e0625c69ea1a4e1ba396569d2cd6cec9f99)
@@ -5,12 +5,12 @@
 // file "LICENCE" distributed with Cforall.
 //
-// AlternativeFinder.h -- 
+// AlternativeFinder.h --
 //
 // Author           : Richard C. Bilson
 // Created On       : Sat May 16 23:56:12 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May 16 23:58:43 2015
+// Last Modified By : Rob Schluntz
+// Last Modified On : Tue Apr 19 11:44:53 2016
 // Update Count     : 2
-// 
+//
 
 #ifndef ALTERNATIVEFINDER_H
@@ -54,5 +54,5 @@
 		virtual void visit( NameExpr *variableExpr );
 		virtual void visit( VariableExpr *variableExpr );
-		virtual void visit( ConstantExpr *constantExpr ); 
+		virtual void visit( ConstantExpr *constantExpr );
 		virtual void visit( SizeofExpr *sizeofExpr );
 		virtual void visit( AlignofExpr *alignofExpr );
@@ -65,4 +65,5 @@
 		virtual void visit( CommaExpr *commaExpr );
 		virtual void visit( TupleExpr *tupleExpr );
+		virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr );
 	  public:  // xxx - temporary hack - should make Tuples::TupleAssignment a friend
 		template< typename InputIterator, typename OutputIterator >
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision b617e4bc8efed571f2132d8e906a00514e74c8e1)
+++ src/SynTree/Expression.cc	(revision dc2e7e0625c69ea1a4e1ba396569d2cd6cec9f99)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Thu Apr 14 15:33:12 2016
+// Last Modified On : Mon Apr 18 17:25:06 2016
 // Update Count     : 40
 //
@@ -486,4 +486,6 @@
 	os << std::endl << std::string( indent, ' ' ) << "with copyCtors:" << std::endl;
 	printAll(copyCtors, os, indent+2);
+	os << std::endl << std::string( indent, ' ' ) << "with return temporaries:" << std::endl;
+	printAll(returnDecls, os, indent+2);
 	Expression::print( os, indent );
 }
Index: src/SynTree/Mutator.cc
===================================================================
--- src/SynTree/Mutator.cc	(revision b617e4bc8efed571f2132d8e906a00514e74c8e1)
+++ src/SynTree/Mutator.cc	(revision dc2e7e0625c69ea1a4e1ba396569d2cd6cec9f99)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Thu Apr 14 15:32:19 2016
+// Last Modified On : Mon Apr 18 17:29:55 2016
 // Update Count     : 16
 //
@@ -341,4 +341,5 @@
 	mutateAll( impCpCtorExpr->get_copyCtors(), *this );
 	mutateAll( impCpCtorExpr->get_tempDecls(), *this );
+	mutateAll( impCpCtorExpr->get_returnDecls(), *this );
 	return impCpCtorExpr;
 }
Index: src/SynTree/Visitor.cc
===================================================================
--- src/SynTree/Visitor.cc	(revision b617e4bc8efed571f2132d8e906a00514e74c8e1)
+++ src/SynTree/Visitor.cc	(revision dc2e7e0625c69ea1a4e1ba396569d2cd6cec9f99)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Thu Apr 14 15:31:18 2016
+// Last Modified On : Mon Apr 18 17:30:10 2016
 // Update Count     : 18
 //
@@ -288,4 +288,5 @@
 	acceptAll( impCpCtorExpr->get_copyCtors(), *this );
 	acceptAll( impCpCtorExpr->get_tempDecls(), *this );
+	acceptAll( impCpCtorExpr->get_returnDecls(), *this );
 }
 
