diff --git a/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/Dummy.java b/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/Dummy.java
index 8e4de2b..460f938 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/Dummy.java
+++ b/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/Dummy.java
@@ -1,11 +1,11 @@
 /**
  * Copyright (c) 2007 Borland Software Corporation
- * 
+ *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
- *   
+ *
  * Contributors:
  *     Borland Software Corporation - initial API and implementation
  */
diff --git a/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/QVTOperationalPackage.java b/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/QVTOperationalPackage.java
index 3979646..8e3465f 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/QVTOperationalPackage.java
+++ b/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/QVTOperationalPackage.java
@@ -51,7 +51,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNS_URI = "http://www.eclipse.org/QVT/1.0.0/Operational"; //$NON-NLS-1$
+	String eNS_URI = "http://www.eclipse.org/qvt/1.0.0/Operational"; //$NON-NLS-1$
 
 	/**
 	 * The package namespace name.
diff --git a/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/impl/QVTOperationalPackageImpl.java b/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/impl/QVTOperationalPackageImpl.java
index 15f91fd..fbb7fa7 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/impl/QVTOperationalPackageImpl.java
+++ b/plugins/org.eclipse.m2m.qvt.oml/_generated/org/eclipse/m2m/internal/qvt/oml/qvtoperational/impl/QVTOperationalPackageImpl.java
@@ -1,34 +1,28 @@
 /**
  * Copyright (c) 2007 Borland Software Corporation
- * 
+ *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
- *   
+ *
  * Contributors:
  *     Borland Software Corporation - initial API and implementation
  */
 package org.eclipse.m2m.internal.qvt.oml.qvtoperational.impl;
 
+import org.eclipse.emf.common.EMFPlugin;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EcorePackage;
-
 import org.eclipse.emf.ecore.impl.EPackageImpl;
-
 import org.eclipse.m2m.internal.qvt.oml.expressions.impl.ExpressionsPackageImpl;
-
 import org.eclipse.m2m.internal.qvt.oml.qvtoperational.Dummy;
 import org.eclipse.m2m.internal.qvt.oml.qvtoperational.QVTOperationalFactory;
 import org.eclipse.m2m.internal.qvt.oml.qvtoperational.QVTOperationalPackage;
-
 import org.eclipse.m2m.qvt.oml.ecore.ImperativeOCL.ImperativeOCLPackage;
-
 import org.eclipse.ocl.expressions.ExpressionsPackage;
-
 import org.eclipse.ocl.types.TypesPackage;
-
 import org.eclipse.ocl.utilities.UtilitiesPackage;
 
 /**
@@ -72,6 +66,20 @@
 	}
 
 	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * This wrapper ensure that the legacy eNS_URI typo is also registered.
+	 */
+	public static QVTOperationalPackage init() {
+		boolean wasInited = isInited;
+		QVTOperationalPackage theQVTOperationalPackage = initGen();
+		if (!wasInited && !EMFPlugin.IS_ECLIPSE_RUNNING) {
+			EPackage.Registry.INSTANCE.put("http://www.eclipse.org/QVT/1.0.0/Operational", theQVTOperationalPackage);
+		}
+		return theQVTOperationalPackage;
+	}
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -90,7 +98,7 @@
 	 * @see #initializePackageContents()
 	 * @generated
 	 */
-	public static QVTOperationalPackage init() {
+	public static QVTOperationalPackage initGen() {
 		if (isInited) return (QVTOperationalPackage)EPackage.Registry.INSTANCE.getEPackage(QVTOperationalPackage.eNS_URI);
 
 		// Obtain or create and register package
diff --git a/plugins/org.eclipse.m2m.qvt.oml/model/QVTOperational.ecore b/plugins/org.eclipse.m2m.qvt.oml/model/QVTOperational.ecore
index 81a5afc..5980e74 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/model/QVTOperational.ecore
+++ b/plugins/org.eclipse.m2m.qvt.oml/model/QVTOperational.ecore
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="qvtoperational" nsURI="http://www.eclipse.org/QVT/1.0.0/Operational"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="qvtoperational" nsURI="http://www.eclipse.org/qvt/1.0.0/Operational"
     nsPrefix="qvtoperational">
   <eClassifiers xsi:type="ecore:EClass" name="Dummy">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
diff --git a/plugins/org.eclipse.m2m.qvt.oml/plugin.xml b/plugins/org.eclipse.m2m.qvt.oml/plugin.xml
index 408c121..15bd024 100644
--- a/plugins/org.eclipse.m2m.qvt.oml/plugin.xml
+++ b/plugins/org.eclipse.m2m.qvt.oml/plugin.xml
@@ -22,6 +22,14 @@
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated QVTOperational -->
       <package
+            uri="http://www.eclipse.org/qvt/1.0.0/Operational"
+            class="org.eclipse.m2m.internal.qvt.oml.qvtoperational.QVTOperationalPackage"
+            genModel="model/QVTOperational.genmodel"/>
+   </extension>
+ 
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated NOT perpetuating longstanding typo -->
+      <package
             uri="http://www.eclipse.org/QVT/1.0.0/Operational"
             class="org.eclipse.m2m.internal.qvt.oml.qvtoperational.QVTOperationalPackage"
             genModel="model/QVTOperational.genmodel"/>
