[505724] Making Property::opposite independent of navigability.
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java
index 432dc87..faaa8a9 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PropertyOperations.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey - 323181
- *   Kenn Hussey (CEA) - 327039, 351774, 407028, 418466, 433195, 439915, 451350, 485756
+ *   Kenn Hussey (CEA) - 327039, 351774, 407028, 418466, 433195, 439915, 451350, 485756, 505724
  *
  */
 package org.eclipse.uml2.uml.internal.operations;
@@ -667,20 +667,17 @@
 	 * @generated NOT
 	 */
 	public static Property getOpposite(Property property) {
+		Association association = property.getAssociation();
 
-		if (property.isNavigable()) {
-			Association association = property.getAssociation();
+		if (association != null) {
+			EList<Property> memberEnds = association.getMemberEnds();
 
-			if (association != null) {
-				EList<Property> memberEnds = association.getMemberEnds();
+			if (memberEnds.size() == 2) {
+				int index = memberEnds.indexOf(property);
 
-				if (memberEnds.size() == 2) {
-					int index = memberEnds.indexOf(property);
-
-					if (index != -1) {
-						return ((InternalEList<Property>) memberEnds)
-							.basicGet(Math.abs(index - 1));
-					}
+				if (index != -1) {
+					return ((InternalEList<Property>) memberEnds)
+						.basicGet(1 - index);
 				}
 			}
 		}