diff --git a/src/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/avatartranslator/toproverif/AVATAR2ProVerif.java
index be69b896b06682fc320de20e9b891bb76ea88393..9b628f1975348bafc6a83795bd478de0c2d89489 100755
--- a/src/avatartranslator/toproverif/AVATAR2ProVerif.java
+++ b/src/avatartranslator/toproverif/AVATAR2ProVerif.java
@@ -53,6 +53,8 @@ import java.io.*;
 import javax.swing.*;
 
 
+import javax.xml.parsers.*;
+import ui.ConfigurationTTool;
 import ui.CheckingError;
 import ui.AvatarDesignPanel;
 import ui.TGComponent;
@@ -109,16 +111,14 @@ public class AVATAR2ProVerif implements AvatarTranslator {
     }
 
     public boolean saveInFile(String path) throws FileException {
-	//Our hash file is always hash.txt
+	//Our hash is saved in config
 	String hashCode= Integer.toString(this.spec.getStringSpec().hashCode());
 	File file = new File(path);
 	BufferedReader br;
         if (file.exists()){
-	    File hash = new File("hash.txt");
-	    if (hash.exists()){
+	    String hash = ConfigurationTTool.ProVerifHash;
+	    if (!hash.equals("")){
 		try {
-  	 	    br = new BufferedReader(new FileReader("hash.txt"));
-		    String line = br.readLine();
 		    br = new BufferedReader(new FileReader(path));
 		    String s = br.readLine();
 		    String tmp;
@@ -126,19 +126,24 @@ public class AVATAR2ProVerif implements AvatarTranslator {
 			s = s+"\n" + tmp;
 		    }
 		    String fileHash = Integer.toString(s.hashCode());
-		    if (!line.equals(fileHash)){
+		    if (!hash.equals(fileHash)){
 			if(JOptionPane.showConfirmDialog(null, "File " + path + " already exists. Do you want to overwrite?", "Overwrite File?", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION){
 			    return false;
 			}
 		    }
 		    br.close();
 		} catch (Exception e) {
-			
+			//
 		}
 	    }
 	}
         FileUtils.saveFile(path, this.spec.getStringSpec());
-	FileUtils.saveFile("hash.txt", hashCode);
+	ConfigurationTTool.ProVerifHash = hashCode;
+	try {
+	    ConfigurationTTool.saveConfiguration();
+	} catch (Exception e){
+//
+	}
 	return true;
     }
 
diff --git a/src/ui/ConfigurationTTool.java b/src/ui/ConfigurationTTool.java
index 1f42f0aa5975964b2a4716fdac715f10a1166354..e92bf07945b1effc2adcf48ece63deb0fcd154ea 100755
--- a/src/ui/ConfigurationTTool.java
+++ b/src/ui/ConfigurationTTool.java
@@ -147,7 +147,7 @@ public class ConfigurationTTool {
     public static String fileName = "";
 
     public static String ExternalServer="";
-
+    public static String ProVerifHash="";
     public static void makeDefaultConfiguration() {
         //System.out.println(Paths.get("").toAbsolutePath().toString());
         //System.out.println("User.dir path:" + System.getProperty("user.dir"));
@@ -193,6 +193,7 @@ public class ConfigurationTTool {
             throw new MalformedConfigurationException("Filepb");
         }
 
+
         index0 = data.indexOf("LastOpenFile");
 
         //sb.append("data = " + data + " ConfigurationTTool.LastOpenFile=" + ConfigurationTTool.LastOpenFile);
@@ -269,7 +270,26 @@ public class ConfigurationTTool {
                 write = true;
             }
         }
-
+	index0 = data.indexOf("ProVerifHash");
+	if (index0 > -1) {
+            index1 = data.indexOf('"', index0);
+            if (index1 > -1) {
+                index2 = data.indexOf('"', index1 + 1);
+                if (index2 > -1) {
+                    tmp = data.substring(index2, data.length());
+                    data = data.substring(0, index1+1) + ConfigurationTTool.ProVerifHash + tmp;
+                    write = true;
+                }
+            }
+        }
+	else {
+	    index1= data.indexOf("</TURTLECONFIGURATION>");
+            if (index1 > -1) {
+                location = "<ProVerifHash data=\"" + ConfigurationTTool.ProVerifHash + "\"/>\n\n";
+                data = data.substring(0, index1) + location + data.substring(index1, data.length());
+                write = true;
+            }
+	}
         if (write) {
             //sb.append("Writing data=" + data);
             try {
@@ -638,6 +658,10 @@ public class ConfigurationTTool {
             if (nl.getLength() > 0)
                 ProVerifCodeDirectory(nl);
 
+            nl = doc.getElementsByTagName("ProVerifHash");
+            if (nl.getLength() > 0)
+                ProVerifHash(nl);
+
             nl = doc.getElementsByTagName("ProVerifVerifierPath");
             if (nl.getLength() > 0)
                 ProVerifVerifierPath(nl);
@@ -1227,6 +1251,15 @@ public class ConfigurationTTool {
         }
     }
 
+    private static void ProVerifHash(NodeList nl) throws MalformedConfigurationException {
+        try {
+            Element elt = (Element)(nl.item(0));
+            ProVerifHash = elt.getAttribute("data");
+        } catch (Exception e) {
+            throw new MalformedConfigurationException(e.getMessage());
+        }
+    }
+
     private static void ProVerifVerifierPath(NodeList nl) throws MalformedConfigurationException {
         try {
             Element elt = (Element)(nl.item(0));
diff --git a/src/ui/avatarbd/AvatarBDPragma.java b/src/ui/avatarbd/AvatarBDPragma.java
index 1996345be8145ed34e11da037619f10e3924a577..5fb32be9ae47ac91dd21816bdeb9c77682e52b31 100755
--- a/src/ui/avatarbd/AvatarBDPragma.java
+++ b/src/ui/avatarbd/AvatarBDPragma.java
@@ -236,18 +236,19 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
 	models.clear();
 	properties.clear();
 	for (String s: values){
-	    if (Arrays.asList(mPragma).contains(s.split(" ")[0])){
+	    if (s.isEmpty() || s.split(" ").length < 1){
+		//Ignore
+	    }
+	    else if (Arrays.asList(mPragma).contains(s.split(" ")[0])){
 		models.add(s);
 	    }
 	    else if (Arrays.asList(pPragma).contains(s.split(" ")[0])){
 		properties.add(s);
 	    }
 	    else {
-		if (!s.isEmpty()){
 		//Warning Message
 		JOptionPane.showMessageDialog(null, s + " is not a valid pragma.", "Invalid Pragma",
                                                   JOptionPane.INFORMATION_MESSAGE);
-		}
 	    }
 	}
         //checkMySize();