diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/utilities/SclModelLoader.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/utilities/SclModelLoader.java
index f3fcfae5a9a34a6b6e2fb5c00ee3ad53f349c6eb..fedd0df871c30a1d0a80ac3c50abf2cd70284bec 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/utilities/SclModelLoader.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/utilities/SclModelLoader.java
@@ -23,19 +23,21 @@ import org.eclipse.emf.ecore.resource.Resource;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.util.SclResourceFactoryImpl;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.util.SclResourceSetImpl;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
-import fr.centralesupelec.edf.riseclipse.util.RiseClipseModelLoader;
+import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseModelLoader;
 import fr.centralesupelec.edf.riseclipse.util.TextRiseClipseConsole;
 
-public class SclModelLoader extends RiseClipseModelLoader {
+public class SclModelLoader extends AbstractRiseClipseModelLoader {
 
     public SclModelLoader( IRiseClipseConsole console ) {
         super( console );
+        
+        reset();
     }
 
-    @Override
     public void reset() {
-        super.reset();
+        super.reset( new SclResourceSetImpl( true, console ));
 
         // Register the appropriate resource factory to handle all file
         // extensions.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetFactory.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetFactory.java
index f5846c204b8535c2cddc9ef69c93ff2724dfb33a..ed11037e45fc3731a1dc311d4199e5efc156e28b 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetFactory.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetFactory.java
@@ -21,16 +21,15 @@ package fr.centralesupelec.edf.riseclipse.iec61850.scl.util;
 
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseResourceSet;
-import fr.centralesupelec.edf.riseclipse.util.RiseClipseResourceSetFactory;
+import fr.centralesupelec.edf.riseclipse.util.IRiseClipseResourceSetFactory;
 
-public class SclResourceSetFactory extends RiseClipseResourceSetFactory {
+public class SclResourceSetFactory implements IRiseClipseResourceSetFactory {
 
     /* (non-Javadoc)
-     * @see fr.centralesupelec.edf.riseclipse.util.RiseClipseResourceSetFactory#createResourceSet()
+     * @see fr.centralesupelec.edf.riseclipse.util.IRiseClipseResourceSetFactory#createResourceSet()
      */
     @Override
     public IRiseClipseResourceSet createResourceSet( boolean strictContent, IRiseClipseConsole console ) {
-        // TODO Auto-generated method stub
         return new SclResourceSetImpl( strictContent, console );
     }
 
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java
index ef8b02df3a3ee52f14df25a528c19bff6046de1a..f2847b8457d3f348ee6bf51df6a78fd08e22fef3 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java
@@ -28,18 +28,18 @@ import org.eclipse.emf.ecore.resource.Resource;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.SCL;
 import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
-import fr.centralesupelec.edf.riseclipse.util.RiseClipseResourceSet;
+import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseResourceSet;
 
 
 @SuppressWarnings( "unused" )
-public class SclResourceSetImpl extends RiseClipseResourceSet {
+public class SclResourceSetImpl extends AbstractRiseClipseResourceSet {
     
     public SclResourceSetImpl( boolean strictContent, IRiseClipseConsole console ) {
         super( strictContent, console );
     }
 
     /* (non-Javadoc)
-     * @see fr.centralesupelec.edf.riseclipse.util.RiseClipseResourceSet#finalizeLoad(fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole)
+     * @see fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseResourceSet#finalizeLoad(fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole)
      */
     @Override
     public void finalizeLoad( IRiseClipseConsole console ) {
@@ -48,6 +48,7 @@ public class SclResourceSetImpl extends RiseClipseResourceSet {
 
     private void buildExplicitLinks( IRiseClipseConsole console ) {
         for( Resource resource : getResources() ) {
+            if( resource.getContents().size() == 0 ) continue;
             if( resource instanceof SclResourceImpl ) {
                 SCL scl = ( SCL ) resource.getContents().get( 0 );
                 scl.buildExplicitLinks( console, false );