Index: translator/Parser/lex.l
===================================================================
--- translator/Parser/lex.l	(revision 6c3744ea42a3b5b7c0caad3216f7a909daf8e9ed)
+++ translator/Parser/lex.l	(revision 2c2242c773dd4781ea54f277dace24b26fca305e)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Sat Jan 17 09:15:03 2015
- * Update Count     : 318
+ * Last Modified On : Wed Jan 21 08:43:59 2015
+ * Update Count     : 320
  */
 
@@ -216,4 +216,5 @@
 finally			{ KEYWORD_RETURN(FINALLY); }	// CFA
 float			{ KEYWORD_RETURN(FLOAT); }
+__float128		{ KEYWORD_RETURN(FLOAT); }	// GCC
 for			{ KEYWORD_RETURN(FOR); }
 forall			{ KEYWORD_RETURN(FORALL); }	// CFA
@@ -230,4 +231,5 @@
 __inline__		{ KEYWORD_RETURN(INLINE); }	// GCC
 int			{ KEYWORD_RETURN(INT); }
+__int128		{ KEYWORD_RETURN(INT); }	// GCC
 __label__		{ KEYWORD_RETURN(LABEL); }	// GCC
 long			{ KEYWORD_RETURN(LONG); }
Index: translator/ResolvExpr/Resolver.cc
===================================================================
--- translator/ResolvExpr/Resolver.cc	(revision 6c3744ea42a3b5b7c0caad3216f7a909daf8e9ed)
+++ translator/ResolvExpr/Resolver.cc	(revision 2c2242c773dd4781ea54f277dace24b26fca305e)
@@ -257,9 +257,37 @@
 	    std::list<Declaration *>::iterator iter1( baseStruct->get_members().begin() );
 	    std::list<Initializer *>::iterator iter2( listInit->begin_initializers() );
-	    for ( ; iter1 != baseStruct->get_members().end() && iter2 != listInit->end_initializers() ; ++iter1, ++iter2 ) {
-		DeclarationWithType *dt = dynamic_cast<DeclarationWithType *>( *iter1 );
-		initContext = dt->get_type();
-		(*iter2)->accept( *this );
-	    }
+	    for ( ; iter1 != baseStruct->get_members().end() && iter2 != listInit->end_initializers(); ++iter2 ) {
+		if ( (*iter2)->get_designators().empty() ) {
+		    DeclarationWithType *dt = dynamic_cast<DeclarationWithType *>( *iter1 );
+		    initContext = dt->get_type();
+		    (*iter2)->accept( *this );
+		    ++iter1;
+		} else {
+		    StructDecl *st = baseStruct;
+		    iter1 = st->get_members().begin();
+		    std::list<Expression *>::iterator iter3( (*iter2)->get_designators().begin() );
+		    for ( ; iter3 != (*iter2)->get_designators().end(); ++iter3 ) {
+			NameExpr *key = dynamic_cast<NameExpr *>( *iter3 );
+			assert( key );
+			for ( ; iter1 != st->get_members().end(); ++iter1 ) {
+			    if ( key->get_name() == (*iter1)->get_name() ) {
+				(*iter1)->print( cout );
+				cout << key->get_name() << endl;
+				ObjectDecl *fred = dynamic_cast<ObjectDecl *>( *iter1 );
+				assert( fred );
+				StructInstType *mary = dynamic_cast<StructInstType*>( fred->get_type() );
+				assert( mary );
+				st = mary->get_baseStruct();
+				iter1 = st->get_members().begin();
+				break;
+			    } // if
+			}  // for
+		    } // for
+		    ObjectDecl *fred = dynamic_cast<ObjectDecl *>( *iter1 );
+		    assert( fred );
+		    initContext = fred->get_type();
+		    (*listInit->begin_initializers())->accept( *this );
+		} // if
+	    } // for
 	} else if ( UnionInstType *st = dynamic_cast<UnionInstType*>(initContext) ) {
 	    DeclarationWithType *dt = dynamic_cast<DeclarationWithType *>( *st->get_baseUnion()->get_members().begin() );
