Index: src/Parser/TypeData.cpp
===================================================================
--- src/Parser/TypeData.cpp	(revision daa4cc1938f891086ffe955660881520d6060125)
+++ src/Parser/TypeData.cpp	(revision 7f18438f6ced55ef03d1637ee81da566c4cbb844)
@@ -1474,7 +1474,13 @@
 			SemanticError( td->location, "Opague cannot have an explicit initializer value." );
 		} else if ( cur->has_enumeratorValue() ) {
+			ast::Expr * initValue;
+			if (ret->isCfa && ret->base) {
+				initValue = new ast::CastExpr( cur->enumeratorValue->location, maybeMoveBuild( cur->consume_enumeratorValue() ), ret->base  );
+			} else {
+				initValue = maybeMoveBuild( cur->consume_enumeratorValue() );
+			}
 			object->init = new ast::SingleInit(
 				td->location,
-				maybeMoveBuild( cur->consume_enumeratorValue() ),
+				initValue,
 				ast::NoConstruct
 			);
