Index: src/Tuples/TupleAssignment.cc
===================================================================
--- src/Tuples/TupleAssignment.cc	(revision bb9d8e8868e5e7d1abbe4d4374fe3474c6ddc850)
+++ src/Tuples/TupleAssignment.cc	(revision f585450779a84d6d199d5a7bbfb9345419d41b22)
@@ -41,4 +41,10 @@
 #include "SynTree/Visitor.h"               // for Visitor
 
+#if 0
+#define PRINT(x) x
+#else
+#define PRINT(x)
+#endif
+
 namespace Tuples {
 	class TupleAssignSpotter {
@@ -119,5 +125,6 @@
 		if (  NameExpr *op = dynamic_cast< NameExpr * >(expr->get_function()) ) {
 			if ( CodeGen::isCtorDtorAssign( op->get_name() ) ) {
-				fname = op->get_name();
+                               fname = op->get_name();
+				PRINT( std::cerr << "TupleAssignment: " << fname << std::endl; )
 				for ( std::list<ResolvExpr::AltList>::const_iterator ali = possibilities.begin(); ali != possibilities.end(); ++ali ) {
 					if ( ali->size() == 0 ) continue; // AlternativeFinder will natrually handle this case, if it's legal
@@ -131,9 +138,13 @@
 					const ResolvExpr::Alternative & alt1 = ali->front();
 					auto begin = std::next(ali->begin(), 1), end = ali->end();
+					PRINT( std::cerr << "alt1 is " << alt1.expr << std::endl; )
 					if ( refToTuple(alt1.expr) ) {
+						PRINT( std::cerr << "and is reference to tuple" << std::endl; )
 						if ( isMultAssign( begin, end ) ) {
+							PRINT( std::cerr << "possible multiple assignment" << std::endl; )
 							matcher.reset( new MultipleAssignMatcher( *this, *ali ) );
 						} else {
 							// mass assignment
+							PRINT( std::cerr << "possible mass assignment" << std::endl; )
 							matcher.reset( new MassAssignMatcher( *this,  *ali ) );
 						}
@@ -159,4 +170,9 @@
 		// now resolve new assignments
 		for ( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i ) {
+			PRINT(
+				std::cerr << "== resolving tuple assign ==" << std::endl;
+				std::cerr << *i << std::endl;
+			)
+
 			ResolvExpr::AlternativeFinder finder( currentFinder.get_indexer(), currentFinder.get_environ() );
 			try {
@@ -248,4 +264,5 @@
 			ctorInit->accept( rm );
 		}
+		PRINT( std::cerr << "new object: " << ret << std::endl; )
 		return ret;
 	}
