Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 2871210d7be1910f7296a17164d525f66ef82648)
+++ src/Parser/DeclarationNode.cc	(revision 71bd8c643a0b33dbf0524e863716e19b32478cfd)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 12:34:05 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul  3 12:35:02 2015
-// Update Count     : 108
+// Last Modified By : Rob Schluntz
+// Last Modified On : Wed Jul 08 16:40:37 2015
+// Update Count     : 121
 //
 
@@ -284,5 +284,9 @@
 	newnode->type->array->dimension = size;
 	newnode->type->array->isStatic = isStatic;
-	newnode->type->array->isVarLen = false;
+	if ( newnode->type->array->dimension == 0 || dynamic_cast<ConstantNode *>( newnode->type->array->dimension ) ) {
+		newnode->type->array->isVarLen = false;
+	} else {
+		newnode->type->array->isVarLen = true;
+	} // if
 	return newnode->addQualifiers( qualifiers );
 }
@@ -464,4 +468,10 @@
 			bitfieldWidth = o->bitfieldWidth;
 		} // if
+
+		// there may be typedefs chained onto the type
+		if ( o->get_link() ) {
+			set_link( o->get_link()->clone() );
+		}
+
 	} // if
 	delete o;
Index: src/Parser/ParseNode.cc
===================================================================
--- src/Parser/ParseNode.cc	(revision 2871210d7be1910f7296a17164d525f66ef82648)
+++ src/Parser/ParseNode.cc	(revision 71bd8c643a0b33dbf0524e863716e19b32478cfd)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 13:26:29 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  6 20:17:58 2015
-// Update Count     : 23
+// Last Modified By : Rob Schluntz
+// Last Modified On : Wed Jul 08 14:46:45 2015
+// Update Count     : 25
 // 
 
@@ -41,10 +41,7 @@
 
 ParseNode *ParseNode::set_link( ParseNode *next_ ) {
-	ParseNode *follow;
-
 	if ( next_ == 0 ) return this;
 
-	for ( follow = this; follow->next != 0; follow = follow->next );
-	follow->next = next_;
+	get_last()->next = next_;
 
 	return this;
