Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision dfee306217f7777314fd2b0dc26100a95e34eccb)
+++ src/SymTab/Validate.cc	(revision 9163b9ca5a5edf47faa9469dceca423c6292d0bd)
@@ -820,4 +820,13 @@
 			Type *ret = def->second.first->get_base()->clone();
 			ret->get_qualifiers() += typeInst->get_qualifiers();
+			// place instance parameters on the typedef'd type
+			if ( ! typeInst->get_parameters().empty() ) {
+				ReferenceToType *rtt = dynamic_cast<ReferenceToType*>(ret);
+				if ( ! rtt ) {
+					throw SemanticError("cannot apply type parameters to base type of " + typeInst->get_name());
+				}
+				rtt->get_parameters().clear();
+				cloneAll(typeInst->get_parameters(), rtt->get_parameters());
+			}
 			delete typeInst;
 			return ret;
