Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 92538ab6b62a97cccbb9045dcd6004887dec9529)
+++ src/CodeGen/CodeGenerator.cc	(revision d8e2a09543f35ee50941fc5ef2b7d98498ebe3b7)
@@ -275,7 +275,5 @@
 		extension( enumDecl );
 		std::list< Declaration* > &memb = enumDecl->get_members();
-		if (enumDecl->base && ! memb.empty() && 
-		(dynamic_cast<BasicType *>(enumDecl->base)
-		 && !(dynamic_cast<BasicType *>(enumDecl->base)->kind == BasicType::Kind::SignedInt))) {
+		if (enumDecl->base && ! memb.empty()) {
 			ObjectDecl * last = nullptr;
 			for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
Index: src/CodeGen/GenType.cc
===================================================================
--- src/CodeGen/GenType.cc	(revision 92538ab6b62a97cccbb9045dcd6004887dec9529)
+++ src/CodeGen/GenType.cc	(revision d8e2a09543f35ee50941fc5ef2b7d98498ebe3b7)
@@ -253,7 +253,5 @@
 
 	void GenType::postvisit( EnumInstType * enumInst ) {
-		if ( enumInst->baseEnum->base 
-		&& dynamic_cast<BasicType *>(enumInst->baseEnum->base)
-		&& dynamic_cast<BasicType *>(enumInst->baseEnum->base)->kind != BasicType::Kind::SignedInt) {
+		if ( enumInst->baseEnum->base ) {
 			typeString = genType(enumInst->baseEnum->base, "", options) + typeString;
 		} else {
Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 92538ab6b62a97cccbb9045dcd6004887dec9529)
+++ src/ResolvExpr/Resolver.cc	(revision d8e2a09543f35ee50941fc5ef2b7d98498ebe3b7)
@@ -1484,5 +1484,5 @@
 					const ast::Type * pointerBase = enumBaseAsPtr->base.get();
 					if ( dynamic_cast<const ast::BasicType *>(pointerBase) ) {
-						objectDecl = fixObjectType(objectDecl, symtab);
+						objectDecl = fixObjectType(objectDecl, context);
 						if (dynamic_cast<const ast::BasicType *>(pointerBase)->kind == ast::BasicType::Char)
 						currentObject = ast::CurrentObject{
@@ -1491,10 +1491,10 @@
 							} };
 					} else {
-						objectDecl = fixObjectType(objectDecl, symtab);
+						objectDecl = fixObjectType(objectDecl, context);
 						currentObject = ast::CurrentObject{objectDecl->location, new ast::BasicType{ ast::BasicType::SignedInt } };
 					}
 				}
 			} else {
-				objectDecl = fixObjectType(objectDecl, symtab);
+				objectDecl = fixObjectType(objectDecl, context);
 				currentObject = ast::CurrentObject{
 					objectDecl->location, new ast::BasicType{ ast::BasicType::SignedInt } };
