Index: src/GenPoly/InstantiateGeneric.cc
===================================================================
--- src/GenPoly/InstantiateGeneric.cc	(revision be8bd880ca4d469ed4e8157a072e60913e31ae6c)
+++ src/GenPoly/InstantiateGeneric.cc	(revision 8ef9c5e7c34b1c5ff8f0ceff99f5b33aa922b62c)
@@ -237,10 +237,11 @@
 					}
 					out.push_back( new TypeExpr( voidPtr ) );
+					// this type is still dtype-static, no change to gt
 				} else {
 					// Just clone parameter type
 					out.push_back( paramType->clone() );
+					// make the struct concrete or dynamic depending on the parameter
+					gt |= isPolyType( paramType->get_type() ) ? genericType::dynamic : genericType::concrete;
 				}
-				// make the struct concrete or dynamic depending on the parameter
-				gt |= isPolyType( paramType->get_type() ) ? genericType::dynamic : genericType::concrete;
 			} else switch ( (*baseParam)->get_kind() ) {
 				case TypeDecl::Dtype:
