Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision cff1143e2baa13d1597cb90a47cb8f47aa3cc8db)
+++ src/SymTab/Validate.cc	(revision 0215a76f15e5264201982b309e3dc88b9530552a)
@@ -812,4 +812,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;
