Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision b0be06ac6a8827cfc7fbc52dee30e7ed931d8fcd)
+++ src/ResolvExpr/Resolver.cc	(revision 679864e15bf4d1e43a08601c26af44816104e920)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sun May 17 12:17:01 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 24 17:33:54 2015
-// Update Count     : 178
+// Last Modified By : Rob Schluntz
+// Last Modified On : Tue Sep 15 16:24:07 2015
+// Update Count     : 181
 //
 
@@ -407,7 +407,12 @@
 		} else if ( StructInstType * st = dynamic_cast< StructInstType * >( initContext ) ) {
 			resolveAggrInit( st->get_baseStruct(), iter, end );
-		} else if ( UnionInstType *st = dynamic_cast< UnionInstType * >( initContext ) ) {
+		} else if ( UnionInstType * st = dynamic_cast< UnionInstType * >( initContext ) ) {
 			resolveAggrInit( st->get_baseUnion(), iter, end );
+		} else if ( TypeInstType * tt = dynamic_cast< TypeInstType * >( initContext ) ) {
+			// try again...
+			initContext = tt->get_baseType()->get_base();
+			visit(listInit);
 		} else {
+			assert( dynamic_cast< BasicType * >( initContext ) );
 			// basic types are handled here
 			Visitor::visit( listInit );
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision b0be06ac6a8827cfc7fbc52dee30e7ed931d8fcd)
+++ src/SymTab/Validate.cc	(revision 679864e15bf4d1e43a08601c26af44816104e920)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:50:04 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Aug 05 14:00:24 2015
-// Update Count     : 195
+// Last Modified On : Tue Oct 06 15:40:35 2015
+// Update Count     : 219
 //
 
@@ -183,5 +183,7 @@
 
 		typedef std::map< std::string, std::pair< TypedefDecl *, int > > TypedefMap;
+		typedef std::map< std::string, TypeDecl * > TypeDeclMap;
 		TypedefMap typedefNames;
+		TypeDeclMap typedeclNames;
 		int scopeLevel;
 	};
@@ -839,4 +841,8 @@
 			delete typeInst;
 			return ret;
+		} else {
+			TypeDeclMap::const_iterator base = typedeclNames.find( typeInst->get_name() );
+			assert( base != typedeclNames.end() );
+			typeInst->set_baseType( base->second->clone() );
 		} // if
 		return typeInst;
@@ -880,4 +886,6 @@
 			typedefNames.erase( i ) ;
 		} // if
+
+		typedeclNames[ typeDecl->get_name() ] = typeDecl;
 		return typeDecl;
 	}
