diff --git a/src/main/java/tmltranslator/TMLMappingTextSpecification.java b/src/main/java/tmltranslator/TMLMappingTextSpecification.java
index 334b87318741962bb5301bd999d72ef39a25ea6a..1aaee64531211f4e8d75a2b0414a84f9680d90fc 100755
--- a/src/main/java/tmltranslator/TMLMappingTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLMappingTextSpecification.java
@@ -382,9 +382,8 @@ public class TMLMappingTextSpecification<E> {
     public boolean makeTMLMapping(String _spec, String path) {
 
         DIPLOElement.resetID();
-
         spec = _spec;
-        //tmlmap = new TMLMappingodeling();
+
         errors = new ArrayList<TMLTXTError>();
         warnings = new ArrayList<TMLTXTError>();
 
@@ -858,10 +857,11 @@ public class TMLMappingTextSpecification<E> {
                         split = s1.split("\\s");
                         if (split.length > 0) {
                             if ((split[0].equals("#include")) && (split.length == 2)) {
+                                TraceManager.addDev("Include found: " + s);
                                 s1 = split[1];
                                 if ((s1.charAt(0) == '\"') && (s1.charAt(s1.length() - 1) == '\"')) {
                                     s1 = s1.substring(1, s1.length() - 1).trim();
-                                    //TraceManager.addDev("Loading file:" + path + s1);
+                                    TraceManager.addDev("Loading file:" + path + s1);
                                     try {
                                         content = FileUtils.loadFile(path + s1);
                                         output += content + CR;
@@ -886,6 +886,8 @@ public class TMLMappingTextSpecification<E> {
             addError(0, lineNb, 0, "Exception when reading specification", null);
         }
 
+        TraceManager.addDev("New output=" + output);
+
         return output;
     }
 }
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 8429b342ef286f8fd48632b0f63df6590494db83..128a11e8300d92208826349db78409aafc5fc6a4 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -54,6 +54,7 @@ import myutilsvg.SVGGeneration;
 import org.xml.sax.SAXException;
 import proverifspec.ProVerifOutputAnalyzer;
 import tmltranslator.TMLMapping;
+import tmltranslator.TMLMappingTextSpecification;
 import tmltranslator.TMLModeling;
 import tmltranslator.TMLTextSpecification;
 import tmltranslator.simulation.SimulationTransaction;
@@ -485,7 +486,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         jfclib.setFileFilter(filterLib);
 
         TMLFilter tmlFilterLib = new TMLFilter();
-        jfctml.setFileFilter(tmlFilterLib);
+        jfctml.setFileFilter( new FileNameExtensionFilter("Select TML or TMAP Files","tml","tmap"));
         //jfctml.setFileFilter(new FileNameExtensionFilter("Select TML/TMAP Files","tml","tmap"));
 
         TImgFilter filterImg = new TImgFilter();
@@ -5385,29 +5386,59 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public void loadAndDrawTMLTxt() {
         File tmlfile;
 
-        int returnVal = jfctml.showDialog(frame, "Load TML Specification (Text format)");
+        int returnVal = jfctml.showDialog(frame, "Load TML / TMAP Specification (Text format)");
         if (returnVal != JFileChooser.APPROVE_OPTION) {
             return;
         }
 
         tmlfile = jfctml.getSelectedFile();
-        tmlfile = FileUtils.addFileExtensionIfMissing(tmlfile, TMLFilter.getExtension());
+        //tmlfile = FileUtils.addFileExtensionIfMissing(tmlfile, TMLFilter.getExtension());
         String content = loadFile(tmlfile);
 
-        // Get TML Modeling from content
-        TMLTextSpecification ts = new TMLTextSpecification(tmlfile.getName());
-        boolean b = ts.makeTMLModeling(content);
 
-        if (!b) {
-            TraceManager.addDev("Error in loaded spec");
-            return;
-        }
+        // tml or tmap?
+        if (tmlfile.getName().endsWith("tml")) {
+
+
+            // Get TML Modeling from content
+            TMLTextSpecification ts = new TMLTextSpecification(tmlfile.getName());
+            boolean b = ts.makeTMLModeling(content);
+
+            if (!b) {
+                TraceManager.addDev("Error in loaded spec");
+                return;
+            }
+
+            try {
+                drawTMLSpecification(ts.getTMLModeling(), tmlfile.getName());
+            } catch (MalformedTMLDesignException e) {
+                TraceManager.addDev("Error in drawing spec: " + e.getMessage());
+                status.setText("ERROR: " + e.getMessage());
+            }
+
+        } else {
+            // TMAP file
+            TraceManager.addDev("Handling TMAP file: " + tmlfile.getName());
+            TMLMappingTextSpecification ts = new TMLMappingTextSpecification(tmlfile.getName());
+            boolean b = ts.makeTMLMapping(content, tmlfile.getParent() +  File.separator);
+
+            if (!b) {
+                TraceManager.addDev("Error in loaded spec");
+                return;
+            }
+
+
+            TraceManager.addDev("Now drawing TML spec");
+            TMLMapping tmap = ts.getTMLMapping();
+
+            try {
+                drawTMLSpecification(tmap.getTMLModeling(), tmlfile.getName());
+            } catch (MalformedTMLDesignException e) {
+                TraceManager.addDev("Error in drawing spec: " + e.getMessage());
+                status.setText("ERROR: " + e.getMessage());
+            }
+
 
-        try {
-            drawTMLSpecification(ts.getTMLModeling(), tmlfile.getName());
-        } catch (MalformedTMLDesignException e) {
-            TraceManager.addDev("Error in drawing spec: " + e.getMessage());
-            status.setText("ERROR: " + e.getMessage());
         }
 
     }
@@ -5424,7 +5455,6 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             return null;
         }
 
-
         return ts;
     }
 
diff --git a/src/main/java/ui/file/TMLFilter.java b/src/main/java/ui/file/TMLFilter.java
index 1d29037a060df4f103d3c3f7a471a02989a33f2e..cbdaeeb6af4f8e0cc9d82904bd57b74d554a23d8 100755
--- a/src/main/java/ui/file/TMLFilter.java
+++ b/src/main/java/ui/file/TMLFilter.java
@@ -54,11 +54,7 @@ import java.io.File;
  */
 public class TMLFilter extends FileFilter {
 
-//Accept all directories and  xml files
     public boolean accept(File f) {
-        if (f.isDirectory()) {
-            return true;
-        }
 
         String extension = FileUtils.getExtension(f);
         if (extension != null) {
@@ -69,7 +65,7 @@ public class TMLFilter extends FileFilter {
     }
     
     public String getDescription() {
-        return "TML / TMAP";
+        return "TML";
     }
     
     public static String getExtension() {
diff --git a/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java b/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java
index eabd451fa1f4aad8a06da2c83a7d50e5182f1aab..854ae2c7d23cc82158ec517ac172cd5c71ef656e 100644
--- a/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java
+++ b/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java
@@ -36,8 +36,8 @@ public class FpgaClockDividerTest extends AbstractTest {
     private String SIM_DIR;
     private final int [] NB_OF_FCD_STATES = {21};
     private final int [] NB_OF_FCD_TRANSTIONS = {20};
-    private final int [] MIN_FCD_CYCLES = {230};
-    private final int [] MAX_FCD_CYCLES = {230};
+    private final int [] MIN_FCD_CYCLES = {128};
+    private final int [] MAX_FCD_CYCLES = {128};
     private static String CPP_DIR = "../../../../simulators/c++2/";
     private static String mappingName = "ArchitectureSimple";
 
@@ -203,11 +203,11 @@ public class FpgaClockDividerTest extends AbstractTest {
 
             // Min and max cycles
             int minValue = graph.getMinValue("allCPUsFPGAsTerminated");
-            System.out.println("executing: minvalue of " + s + " " + minValue);
+            System.out.println("executing: minvalue of " + s + " " + minValue + " expecting: " + MIN_FCD_CYCLES[i]);
             assertTrue(MIN_FCD_CYCLES[i] == minValue);
 
             int maxValue = graph.getMaxValue("allCPUsFPGAsTerminated");
-            System.out.println("executing: maxvalue of " + s + " " + maxValue);
+            System.out.println("executing: maxvalue of " + s + " " + maxValue + " expecting:" + MAX_FCD_CYCLES[i]);
             assertTrue(MAX_FCD_CYCLES[i] == maxValue);
         }
     }