Index: translator/Parser/InitializerNode.cc
===================================================================
--- translator/Parser/InitializerNode.cc	(revision 17cd4ebabb684710b2f3698449093c4e84b8fb70)
+++ translator/Parser/InitializerNode.cc	(revision 0b8cd7227c65b28513877765de7302e28eefbb6f)
@@ -20,5 +20,5 @@
 
 InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des )
-	: aggregate( aggrp ), designator( des ), kids( 0 ) {
+    : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ) {
     if ( init != 0 )
 	set_link(init);
Index: translator/Parser/TypeData.cc
===================================================================
--- translator/Parser/TypeData.cc	(revision 17cd4ebabb684710b2f3698449093c4e84b8fb70)
+++ translator/Parser/TypeData.cc	(revision 0b8cd7227c65b28513877765de7302e28eefbb6f)
@@ -33,4 +33,5 @@
 	function->body = 0;
 	function->hasBody = false;
+	function->newStyle = false;
 	break;
       case Aggregate:
Index: translator/Parser/TypedefTable.cc
===================================================================
--- translator/Parser/TypedefTable.cc	(revision 17cd4ebabb684710b2f3698449093c4e84b8fb70)
+++ translator/Parser/TypedefTable.cc	(revision 0b8cd7227c65b28513877765de7302e28eefbb6f)
@@ -106,12 +106,12 @@
 void TypedefTable::leaveScope(void) {
     debugPrint( "Leaving scope " << currentScope << endl );
-    for (tableType::iterator i = table.begin(); i != table.end(); i++) {
+    for (tableType::iterator i = table.begin(); i != table.end(); ) {
 	list<Entry> &declList = (*i).second;
 	while (!declList.empty() && declList.front().scope == currentScope) {
 	    declList.pop_front();
 	}
-	if ( declList.empty() ) {
-	    table.erase( i );
-	}
+	if ( declList.empty() ) {			// standard idom for erasing during traversal
+	    table.erase( i++ );
+	} else ++i;
     }
     currentScope -= 1;
