Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 9d55ff63d37aa8e7cd666fec19b68125f7da6a2f)
+++ src/CodeGen/CodeGenerator.cc	(revision a065f1ffe843ea0a3ceecdf36a1210abe07a2441)
@@ -277,5 +277,6 @@
 		std::list< Declaration* > &memb = enumDecl->get_members();
 		if (enumDecl->base && ! memb.empty()) {
-			unsigned long long last_val = -1;
+			unsigned long long last_val = -1; // if the first enum value has no explicit initializer, 
+			// as other 
 			for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
 				ObjectDecl * obj = dynamic_cast< ObjectDecl* >( *i );
@@ -695,8 +696,4 @@
 			output << opInfo->symbol;
 		} else {
-			// if (dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type())
-			// && dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type())->baseEnum->base) {
-			// 	output << '(' <<genType(dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type())->baseEnum->base, "", options) << ')';
-			// }
 			output << mangleName( variableExpr->get_var() );
 		} // if
@@ -917,4 +914,9 @@
 	}
 
+	// QualifiedNameExpr should not reach to CodeGen. 
+	// FixQualifiedName Convert QualifiedNameExpr to VariableExpr
+	void CodeGenerator::postvisit( QualifiedNameExpr * expr ) {
+		output << "/* label */" << mangleName(expr->var);
+	}
 
 	// *** Statements
Index: src/CodeGen/CodeGenerator.h
===================================================================
--- src/CodeGen/CodeGenerator.h	(revision 9d55ff63d37aa8e7cd666fec19b68125f7da6a2f)
+++ src/CodeGen/CodeGenerator.h	(revision a065f1ffe843ea0a3ceecdf36a1210abe07a2441)
@@ -103,4 +103,5 @@
 		void postvisit( DefaultArgExpr * );
 		void postvisit( GenericExpr * );
+		void postvisit( QualifiedNameExpr *);
 
 		//*** Statements
