Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision 724c2b6f8ab60e02cc9a9c5872b23139ff804274)
+++ src/GenPoly/Box.cc	(revision e01559ccdf149d938faa048d3be60e6b7461bb1c)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jun 24 16:19:07 2015
-// Update Count     : 10
+// Last Modified On : Thu Jul 30 14:35:40 2015
+// Update Count     : 54
 //
 
@@ -1051,12 +1051,15 @@
 			if ( ObjectDecl *objectDecl = dynamic_cast< ObjectDecl *>( declStmt->get_decl() ) ) {
 				if ( isPolyVal( objectDecl->get_type(), scopeTyVars ) ) {
+					// change initialization of a polymorphic value object
+					// to allocate storage with alloca
 					TypeInstType *typeInst = dynamic_cast< TypeInstType *>( objectDecl->get_type() );
 					assert( typeInst );
 					UntypedExpr *alloc = new UntypedExpr( new NameExpr( "__builtin_alloca" ) );
 					alloc->get_args().push_back( new NameExpr( typeInst->get_name() ) );
-					UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) );
-					assign->get_args().push_back( new VariableExpr( objectDecl ) );
-					assign->get_args().push_back( alloc );
-					stmtsToAddAfter.push_back( new ExprStmt( noLabels, assign ) );
+
+					delete objectDecl->get_init();
+
+					std::list<Expression*> designators;
+					objectDecl->set_init( new SingleInit( alloc, designators ) );
 				}
 			}
