Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 53a2e97ca573c8d14ddfb7c33e9ee762dec720b9)
+++ src/SymTab/Validate.cc	(revision 367e082669bed759f36ff590dedd54bd4eb7b398)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:50:04 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Fri May 22 15:29:16 2015
-// Update Count     : 9
+// Last Modified On : Mon May 25 14:27:15 2015
+// Update Count     : 21
 //
 
@@ -560,6 +560,12 @@
 		for ( std::list< Declaration * >::const_iterator member = aggregateDecl->get_members().begin(); member != aggregateDecl->get_members().end(); ++member ) {
 			if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( *member ) ) {
-				Type::Qualifiers & qualifiers = dwt->get_type()->get_qualifiers();
-				if ( qualifiers.isConst ) {
+				// query the type qualifiers of this field and skip assigning it if it is marked const. 
+				// If it is an array type, we need to strip off the array layers to find its qualifiers.
+				Type * type = dwt->get_type();
+				while ( ArrayType * at = dynamic_cast< ArrayType * >( type ) ) {
+					type = at->get_base();
+				}
+
+				if ( type->get_qualifiers().isConst ) {
 					// don't assign const members
 					continue;
