Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 630a82a5214317b27ab087ea8d7665b217527f07)
+++ src/Parser/parser.yy	(revision 09d1ad0b1f50213ed8f7a8749ff1ba2242b2c4a7)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr  8 16:21:55 2016
-// Update Count     : 1508
+// Last Modified On : Wed Apr 13 16:58:43 2016
+// Update Count     : 1519
 // 
 
@@ -1438,9 +1438,14 @@
 		{ $$ = DeclarationNode::newAggregate( $1, 0, 0, $3 ); }
 	| aggregate_key no_attr_identifier_or_type_name
-	 	{ $$ = DeclarationNode::newAggregate( $1, $2, 0, 0 ); }
-	| aggregate_key no_attr_identifier_or_type_name '{' field_declaration_list '}'
-	 	{ $$ = DeclarationNode::newAggregate( $1, $2, 0, $4 ); }
+		{
+			typedefTable.makeTypedef( *$2 );
+			$$ = DeclarationNode::newAggregate( $1, $2, 0, 0 );
+		}
+	| aggregate_key no_attr_identifier_or_type_name
+		{ typedefTable.makeTypedef( *$2 ); }
+		'{' field_declaration_list '}'
+		{ $$ = DeclarationNode::newAggregate( $1, $2, 0, $5); }
 	| aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA
-	 	{ $$ = DeclarationNode::newAggregate( $1, 0, $3, $6 ); }
+		{ $$ = DeclarationNode::newAggregate( $1, 0, $3, $6 ); }
 	| aggregate_key typegen_name						// CFA, S/R conflict
 		{ $$ = $2; }
@@ -1520,8 +1525,13 @@
 	enum_key '{' enumerator_list comma_opt '}'
 		{ $$ = DeclarationNode::newEnum( 0, $3 ); }
-	| enum_key no_attr_identifier_or_type_name '{' enumerator_list comma_opt '}'
-		{ $$ = DeclarationNode::newEnum( $2, $4 ); }
 	| enum_key no_attr_identifier_or_type_name
-		{ $$ = DeclarationNode::newEnum( $2, 0 ); }
+		{
+			typedefTable.makeTypedef( *$2 );
+			$$ = DeclarationNode::newEnum( $2, 0 );
+		}
+	| enum_key no_attr_identifier_or_type_name
+		{ typedefTable.makeTypedef( *$2 ); }
+		'{' enumerator_list comma_opt '}'
+		{ $$ = DeclarationNode::newEnum( $2, $5 ); }
 	;
 
@@ -2813,5 +2823,5 @@
 	std::cout << "Error ";
 	if ( yyfilename ) {
-	    std::cout << "in file " << yyfilename << " ";
+		std::cout << "in file " << yyfilename << " ";
 	} // if
 	std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
