diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/InstanceValueImpl.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/InstanceValueImpl.java
index bb92573..f75ecdf 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/InstanceValueImpl.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/impl/InstanceValueImpl.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: InstanceValueImpl.java,v 1.4 2004/06/18 04:34:32 khussey Exp $
+ * $Id: InstanceValueImpl.java,v 1.5 2005/01/20 14:51:41 khussey Exp $
  */
 package org.eclipse.uml2.impl;
 
@@ -21,6 +21,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.uml2.EnumerationLiteral;
 import org.eclipse.uml2.InstanceSpecification;
 import org.eclipse.uml2.InstanceValue;
 import org.eclipse.uml2.StringExpression;
@@ -28,6 +29,7 @@
 import org.eclipse.uml2.TemplateSignature;
 import org.eclipse.uml2.Type;
 import org.eclipse.uml2.UML2Package;
+import org.eclipse.uml2.ValueSpecification;
 import org.eclipse.uml2.VisibilityKind;
 
 /**
@@ -384,11 +386,25 @@
 		return eDynamicIsSet(eFeature);
 	}
 
-	/**
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.uml2.ValueSpecification#stringValue()
 	 */
 	public String stringValue() {
-		return null == getInstance() || null == getInstance().getSpecification() ? super.stringValue() : getInstance().getSpecification().stringValue();
+		InstanceSpecification instance = getInstance();
+
+		if (EnumerationLiteral.class.isInstance(instance)) {
+			return ((EnumerationLiteral) instance).getName();
+		} else if (null != instance) {
+			ValueSpecification specification = instance.getSpecification();
+
+			if (null != specification) {
+				return specification.stringValue();
+			}
+		}
+
+		return super.stringValue();
 	}
 
-} //InstanceValueImpl
+} // InstanceValueImpl
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/UML2Operations.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/UML2Operations.java
index 6f22053..3ea9c84 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/UML2Operations.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/UML2Operations.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *
- * $Id: UML2Operations.java,v 1.13 2005/01/19 22:55:30 khussey Exp $
+ * $Id: UML2Operations.java,v 1.14 2005/01/20 14:51:41 khussey Exp $
  */
 package org.eclipse.uml2.internal.operation;
 
@@ -271,7 +271,9 @@
 	protected static EAnnotation safeGetEAnnotation(
 			EModelElement eModelElement, String source) {
 
-		EAnnotation eAnnotation = getEAnnotation(eModelElement, source, false);
+		EAnnotation eAnnotation = null == eModelElement
+			? null
+			: getEAnnotation(eModelElement, source, false);
 
 		return null == eAnnotation
 			? EcoreFactory.eINSTANCE.createEAnnotation()
