diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java
index 207c42533338e17c65a1bfaf946f37c7fc894aaa..b6c162f6e3018f8228b69b1b309df24374008b78 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java
@@ -149,6 +149,9 @@ public class LNClassesItemProvider extends NsdObjectItemProvider {
     protected void collectNewChildDescriptors( Collection< Object > newChildDescriptors, Object object ) {
         super.collectNewChildDescriptors( newChildDescriptors, object );
 
+        newChildDescriptors.add( createChildParameter( NsdPackage.Literals.LN_CLASSES__ABSTRACT_LN_CLASS,
+                NsdFactory.eINSTANCE.createAbstractLNClass() ) );
+
         newChildDescriptors.add( createChildParameter( NsdPackage.Literals.LN_CLASSES__LN_CLASS,
                 NsdFactory.eINSTANCE.createLNClass() ) );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java
index 81aec4df6a870018d85e976b091a1bbec9477703..20adc334a119170bb9ea4859559dc80920e98c8d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java
@@ -227,6 +227,29 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory
         return abbreviationsItemProvider;
     }
 
+    /**
+     * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected AbstractLNClassItemProvider abstractLNClassItemProvider;
+
+    /**
+     * This creates an adapter for a {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public Adapter createAbstractLNClassAdapter() {
+        if( abstractLNClassItemProvider == null ) {
+            abstractLNClassItemProvider = new AbstractLNClassItemProvider( this );
+        }
+
+        return abstractLNClassItemProvider;
+    }
+
     /**
      * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServiceNS} instances.
      * <!-- begin-user-doc -->
@@ -1235,6 +1258,7 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory
         if( serviceTypeItemProvider != null ) serviceTypeItemProvider.dispose();
         if( abbreviationItemProvider != null ) abbreviationItemProvider.dispose();
         if( abbreviationsItemProvider != null ) abbreviationsItemProvider.dispose();
+        if( abstractLNClassItemProvider != null ) abstractLNClassItemProvider.dispose();
         if( applicableServiceNSItemProvider != null ) applicableServiceNSItemProvider.dispose();
         if( applicableServicesItemProvider != null ) applicableServicesItemProvider.dispose();
         if( basicTypeItemProvider != null ) basicTypeItemProvider.dispose();
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
index 0d8e5952d45c7492723c0158e5e3932011b82f43..816c3a27236565a1729fb6d324253b00f2b93302 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
@@ -171,7 +171,7 @@
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/abbreviations"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AbstractLNClass" abstract="true" eSuperTypes="#//AnyLNClass">
+  <eClassifiers xsi:type="ecore:EClass" name="AbstractLNClass" eSuperTypes="#//AnyLNClass">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
       <details key="name" value="tAbstractLNClass"/>
       <details key="kind" value="elementOnly"/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java
index 64fff621c80b972a1e82b538b55b24bd19c8c4f7..3dff683fc9552bd7a60cacebb5c7c1f559725c19 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java
@@ -36,8 +36,7 @@ import org.eclipse.emf.common.util.EList;
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbstractLNClass()
- * @model abstract="true"
- *        extendedMetaData="name='tAbstractLNClass' kind='elementOnly'"
+ * @model extendedMetaData="name='tAbstractLNClass' kind='elementOnly'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name &lt;&gt; null\n}.status'"
  * @generated
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java
index 5777842a7b55c83861498c28ea68f6db48d235f4..668b3e3792e307e97288c40767bfad2fcd2ccad8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java
@@ -92,6 +92,15 @@ public interface NsdFactory extends EFactory {
      */
     Abbreviations createAbbreviations();
 
+    /**
+     * Returns a new object of class '<em>Abstract LN Class</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Abstract LN Class</em>'.
+     * @generated
+     */
+    AbstractLNClass createAbstractLNClass();
+
     /**
      * Returns a new object of class '<em>Applicable Service NS</em>'.
      * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java
index 49583dd9e6c9896fe80486bbf7883d1636d41403..b55bdd5ca43145bd902178ca47fa51da98fd6772 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java
@@ -52,7 +52,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *
  * @generated
  */
-public abstract class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNClass {
+public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNClass {
     /**
      * The default value of the '{@link #getName() <em>Name</em>}' attribute.
      * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java
index 33e97372c4f0d869e967ef8fe373e7cf642147f2..e185dac024d0bdee08d5d41de2df74dd152e5c77 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java
@@ -90,6 +90,8 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
             return createAbbreviation();
         case NsdPackage.ABBREVIATIONS:
             return createAbbreviations();
+        case NsdPackage.ABSTRACT_LN_CLASS:
+            return createAbstractLNClass();
         case NsdPackage.APPLICABLE_SERVICE_NS:
             return createApplicableServiceNS();
         case NsdPackage.APPLICABLE_SERVICES:
@@ -319,6 +321,17 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return abbreviations;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public AbstractLNClass createAbstractLNClass() {
+        AbstractLNClassImpl abstractLNClass = new AbstractLNClassImpl();
+        return abstractLNClass;
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
index 4b112e86158a07c79f68cfa7e97c2a51fc9c2b77..8fed7feb6cf767350ff973184241e527eb5efb26 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
@@ -4588,7 +4588,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 "parentServiceNS", null, 0, 1, Abbreviations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
-        initEClass( abstractLNClassEClass, AbstractLNClass.class, "AbstractLNClass", IS_ABSTRACT, !IS_INTERFACE,
+        initEClass( abstractLNClassEClass, AbstractLNClass.class, "AbstractLNClass", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getAbstractLNClass_Name(), ecorePackage.getEString(), "name", null, 0, 1, AbstractLNClass.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );