diff --git a/src/main/jastadd/XMI/XMIWriter.jadd b/src/main/jastadd/XMI/XMIWriter.jadd
index 72d3dd8e8f8db115e222cf0221ccb2bba94b1a91..00c12a32e462196278d1ee2bb9ba7b87282d1f26 100644
--- a/src/main/jastadd/XMI/XMIWriter.jadd
+++ b/src/main/jastadd/XMI/XMIWriter.jadd
@@ -240,6 +240,9 @@ aspect XMIWriter {
     }
     // from ENamedElement
     b.append(" value=\"").append(getValue()).append("\"");
+    if (getLiteral() != null && !getLiteral().equals("")) {
+      b.append(" literal=\"").append(getLiteral()).append("\"");
+    }
 
     if (numContainedChildren() == 0) {
       b.append("/>\n");
diff --git a/src/main/jastadd/ecore.relast b/src/main/jastadd/ecore.relast
index ac697184ab7e859bb628140cbd087fb647fdc5eb..fab38ac867f4159608c27c829e0760b643c1ca83 100644
--- a/src/main/jastadd/ecore.relast
+++ b/src/main/jastadd/ecore.relast
@@ -11,7 +11,7 @@ EAnnotation : EModelElement ::= <Source:String> Detail:EStringToStringMapEntry*;
 
 
 abstract EClassifier : ENamedElement ::= ETypeParameter* <InstanceClassName:String>;
-EEnumLiteral : ENamedElement ::= <Value:int>;
+EEnumLiteral : ENamedElement ::= <Value:int> <Literal:String>;
 abstract ETypedElement : ENamedElement ::= [EGenericType] <Ordered:boolean> <Unique:boolean> <LowerBound:int> <UpperBound:int>;
 
 EClass : EClassifier ::= EStructuralFeature* EOperation* EGenericSuperType:EGenericType* <Abstract:boolean> <Interface:boolean>;
diff --git a/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java b/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java
index 5c39b142e4d0c49e114b72d445570d6e3c7e97bd..84ed860a3535a53bf799a5eca5f0f5940d196345 100644
--- a/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java
+++ b/src/main/java/de/tudresden/inf/st/e2j/parser/EcoreParser.java
@@ -562,6 +562,9 @@ public class EcoreParser {
           case "value":
             eEnumLiteral.setValue(Integer.valueOf(attribute.getValue()));
             break;
+          case "literal":
+            eEnumLiteral.setLiteral(attribute.getValue());
+            break;
           default:
             logger.warn("ignoring attribute {}:{}", attribute.getName().getPrefix(), attribute.getName().getLocalPart());
         }