Index: src/GenPoly/InstantiateGeneric.cc
===================================================================
--- src/GenPoly/InstantiateGeneric.cc	(revision a0ad7dc9c1fb88ba2a6f635f0b103f2eb1380169)
+++ src/GenPoly/InstantiateGeneric.cc	(revision 4845ae2748facdf39ec2df3aaba15448ed6cd16f)
@@ -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() );
