Index: src/ResolvExpr/ConversionCost.cc
===================================================================
--- src/ResolvExpr/ConversionCost.cc	(revision cdb4eaa683e28a6751e0b414eb1f7d519898ac0c)
+++ src/ResolvExpr/ConversionCost.cc	(revision 748c7516ae55669d37dd519860c23a7cc8c8632b)
@@ -379,10 +379,6 @@
 void ConversionCost::postvisit( const ast::EnumAttrType * src ) {
     auto dstAsEnumAttrType = dynamic_cast<const ast::EnumAttrType *>(dst);
-    if ( src->attr == ast::EnumAttribute::Label ) {
-        if ( dstAsEnumAttrType && dstAsEnumAttrType->attr == ast::EnumAttribute::Label ) {
-            cost = costCalc( src->instance, dstAsEnumAttrType->instance, srcIsLvalue, symtab, env );
-        } 
-        // Add Conversion To String
-    } else if ( src->attr == ast::EnumAttribute::Value ) {
+	assert( src->attr != ast::EnumAttribute::Label );
+    if ( src->attr == ast::EnumAttribute::Value ) {
         if ( dstAsEnumAttrType && dstAsEnumAttrType->attr == ast::EnumAttribute::Value) {
             cost = costCalc( src->instance, dstAsEnumAttrType->instance, srcIsLvalue, symtab, env );
Index: src/Validate/ImplementEnumFunc.cpp
===================================================================
--- src/Validate/ImplementEnumFunc.cpp	(revision cdb4eaa683e28a6751e0b414eb1f7d519898ac0c)
+++ src/Validate/ImplementEnumFunc.cpp	(revision 748c7516ae55669d37dd519860c23a7cc8c8632b)
@@ -296,6 +296,5 @@
         {new ast::ObjectDecl(getLocation(), "_i", new ast::EnumInstType(decl))},
         {new ast::ObjectDecl(getLocation(), "_ret",
-                             new ast::EnumAttrType(new ast::EnumInstType(decl),
-                                                   ast::EnumAttribute::Posn))});
+            new ast::BasicType(ast::BasicType::UnsignedInt))});
 }
 
