Index: src/GenPoly/InstantiateGeneric.cc
===================================================================
--- src/GenPoly/InstantiateGeneric.cc	(revision 9042795845e8a316c8348ae92925af2f17ce1492)
+++ src/GenPoly/InstantiateGeneric.cc	(revision 6db9daba186e2d36020e7deaab242ab9bb8d0d04)
@@ -233,5 +233,5 @@
 				} else {
 					// normalize possibly dtype-static parameter type
-					out.push_back( new TypeExpr{ 
+					out.push_back( new TypeExpr{
 						ScrubTyVars::scrubAll( paramType->get_type()->clone() ) } );
 					gt |= genericType::concrete;
@@ -369,4 +369,5 @@
 				DeclMutator::addDeclaration( concDecl );
 				insert( inst, typeSubs, concDecl );
+				concDecl->acceptMutator( *this ); // recursively instantiate members
 			}
 			StructInstType *newInst = new StructInstType( inst->get_qualifiers(), concDecl->get_name() );
@@ -423,4 +424,5 @@
 				DeclMutator::addDeclaration( concDecl );
 				insert( inst, typeSubs, concDecl );
+				concDecl->acceptMutator( *this ); // recursively instantiate members
 			}
 			UnionInstType *newInst = new UnionInstType( inst->get_qualifiers(), concDecl->get_name() );
