Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 3a5131ed67382189022455b971ca8ed0a8f3e6a9)
+++ src/SymTab/Validate.cc	(revision 87c3bef2f36114e3144a18260c66331cd41f4c18)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:50:04 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb  2 17:47:54 2017
-// Update Count     : 312
+// Last Modified On : Thu Feb 23 21:33:55 2017
+// Update Count     : 318
 //
 
@@ -629,5 +629,5 @@
 		} else {
 			TypeDeclMap::const_iterator base = typedeclNames.find( typeInst->get_name() );
-			assertf( base != typedeclNames.end(), "Can't find name %s", typeInst->get_name().c_str() );
+			assertf( base != typedeclNames.end(), "Can't find typedecl name %s", typeInst->get_name().c_str() );
 			typeInst->set_baseType( base->second );
 		} // if
@@ -660,7 +660,7 @@
 		// Note, qualifiers on the typedef are superfluous for the forward declaration.
 		if ( StructInstType *aggDecl = dynamic_cast< StructInstType * >( tyDecl->get_base() ) ) {
-			return new StructDecl( aggDecl->get_name() );
+			return aggDecl->get_baseStruct() ? Mutator::mutate( aggDecl->get_baseStruct() ) : new StructDecl( aggDecl->get_name() );
 		} else if ( UnionInstType *aggDecl = dynamic_cast< UnionInstType * >( tyDecl->get_base() ) ) {
-			return new UnionDecl( aggDecl->get_name() );
+			return aggDecl->get_baseUnion() ? Mutator::mutate( aggDecl->get_baseUnion() ) : new UnionDecl( aggDecl->get_name() );
 		} else if ( EnumInstType *enumDecl = dynamic_cast< EnumInstType * >( tyDecl->get_base() ) ) {
 			return new EnumDecl( enumDecl->get_name() );
@@ -732,5 +732,5 @@
 	}
 
-	// there may be typedefs nested within aggregates in order for everything to work properly, these should be removed
+	// there may be typedefs nested within aggregates. in order for everything to work properly, these should be removed
 	// as well
 	template<typename AggDecl>
