Index: src/Parser/TypedefTable.cc
===================================================================
--- src/Parser/TypedefTable.cc	(revision f2f512ba8601912d9c2c4bf10c704bf6cdf95972)
+++ src/Parser/TypedefTable.cc	(revision ff593a32adef9a2078e1364158421083ef83d50a)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:20:13 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 13 18:35:54 2018
-// Update Count     : 257
+// Last Modified On : Wed Jul 25 15:32:35 2018
+// Update Count     : 258
 //
 
@@ -49,4 +49,8 @@
 bool TypedefTable::exists( const string & identifier ) {
 	return kindTable.find( identifier ) != kindTable.end();
+} // TypedefTable::exists
+
+bool TypedefTable::existsCurr( const string & identifier ) {
+	return kindTable.findAt( kindTable.currentScope() - 1, identifier ) != kindTable.end();
 } // TypedefTable::exists
 
Index: src/Parser/TypedefTable.h
===================================================================
--- src/Parser/TypedefTable.h	(revision f2f512ba8601912d9c2c4bf10c704bf6cdf95972)
+++ src/Parser/TypedefTable.h	(revision ff593a32adef9a2078e1364158421083ef83d50a)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:24:36 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 10 18:32:23 2018
-// Update Count     : 112
+// Last Modified On : Wed Jul 25 15:33:55 2018
+// Update Count     : 114
 //
 
@@ -31,4 +31,5 @@
 
 	bool exists( const std::string & identifier );
+	bool existsCurr( const std::string & identifier );
 	int isKind( const std::string & identifier ) const;
 	void makeTypedef( const std::string & name, int kind = TYPEDEFname );
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision f2f512ba8601912d9c2c4bf10c704bf6cdf95972)
+++ src/Parser/parser.yy	(revision ff593a32adef9a2078e1364158421083ef83d50a)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 20 11:46:46 2018
-// Update Count     : 3837
+// Last Modified On : Wed Jul 25 15:54:35 2018
+// Update Count     : 3841
 //
 
@@ -2804,5 +2804,11 @@
 	typedef
 		// hide type name in enclosing scope by variable name
-		{ typedefTable.addToEnclosingScope( *$1->name, IDENTIFIER, "ID" ); }
+		{
+			// if ( ! typedefTable.existsCurr( *$1->name ) ) {
+				typedefTable.addToEnclosingScope( *$1->name, IDENTIFIER, "ID" );
+			// } else {
+			// 	SemanticError( yylloc, string("'") + *$1->name + "' redeclared as different kind of symbol." ); $$ = nullptr;
+			// } // if
+		}
 	| '(' paren_type ')'
 		{ $$ = $2; }
@@ -2815,5 +2821,5 @@
 		{ $$ = $3->addPointer( DeclarationNode::newPointer( $2, $1 ) ); }
 	| '(' type_ptr ')' attribute_list_opt
-		{ $$ = $2->addQualifiers( $4 ); }
+		{ $$ = $2->addQualifiers( $4 ); }				// redundant parenthesis
 	;
 
