diff --git a/src/avatartranslator/AvatarBlock.java b/src/avatartranslator/AvatarBlock.java
index d6f7a8486e5059e5470b0e76c6626b70befbc72f..72a23608da215310722de1a3baef5c93408ce9e2 100644
--- a/src/avatartranslator/AvatarBlock.java
+++ b/src/avatartranslator/AvatarBlock.java
@@ -58,6 +58,8 @@ public class AvatarBlock extends AvatarElement {
 	private LinkedList<AvatarSignal> signals;
 	private AvatarStateMachine asm;
 	
+	private String filesToInclude;
+	
 	
     public AvatarBlock(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -66,7 +68,22 @@ public class AvatarBlock extends AvatarElement {
 		signals = new LinkedList<AvatarSignal>();
 		asm = new AvatarStateMachine("statemachineofblock__" + _name, _referenceObject);
     }
+    
+    // For code generation
+    public void addFilesToInclude(String _files) {
+    	if (filesToInclude == null) {
+    		filesToInclude = _files;
+    		return;
+    	}
+    	filesToInclude += _files;
+    }
+    
+    public String getFilesToInclude() {
+    	return filesToInclude;
+    }
 	
+    
+    // Relation with parent block
 	public void setFather(AvatarBlock _father) {
 		father = _father;
 	}
diff --git a/src/avatartranslator/AvatarTransition.java b/src/avatartranslator/AvatarTransition.java
index 4ecbf561e3ec5cc739f9cea0bbe64a08accdc64b..ab9c0c902c0aa9735024160b3b5e69aaa5275052 100644
--- a/src/avatartranslator/AvatarTransition.java
+++ b/src/avatartranslator/AvatarTransition.java
@@ -54,6 +54,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
 	private String guard = "[ ]";
 	private String minDelay = "", maxDelay = "";
 	private String minCompute = "", maxCompute = "";
+	private String codeToExecute;
 	
 	private LinkedList<String> actions; // actions on variable, or method call
 	
@@ -61,6 +62,19 @@ public class AvatarTransition extends AvatarStateMachineElement {
         super(_name, _referenceObject);
 		actions = new LinkedList<String>();
     }
+    
+    // For code generation
+    public void addExecutableCode(String _code) {
+    	if (codeToExecute == null) {
+    		codeToExecute = _code;
+    		return;
+    	}
+    	codeToExecute += _code;
+    }
+    
+    public String getExecutableCode() {
+    	return codeToExecute;
+    }
 	
 	public String getGuard() {
 		return guard;
diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java
index 259abeff8b26e2cf75cfdbce0251aadd23050333..f36645b6e4bbfc7d0b5a19fab72a9d353724f229 100644
--- a/src/ui/AvatarDesignPanelTranslator.java
+++ b/src/ui/AvatarDesignPanelTranslator.java
@@ -1174,6 +1174,10 @@ public class AvatarDesignPanelTranslator {
 							at.setComputes(tmp1, tmp2);
 						}
 						
+						// Executable code
+						at.addExecutableCode(asmdco.getCodeToInclude());
+						_ab.addFilesToInclude(asmdco.getFilesToInclude());	
+						
 						// Actions
 						vs = asmdco.getActions();
 						for(String s: vs) {
diff --git a/src/ui/avatarsmd/AvatarSMDConnector.java b/src/ui/avatarsmd/AvatarSMDConnector.java
index 9ca6f1650461546fc11a3553c258e679fa56deca..c7381b16e7900ff80a122adaf9226f711319986c 100644
--- a/src/ui/avatarsmd/AvatarSMDConnector.java
+++ b/src/ui/avatarsmd/AvatarSMDConnector.java
@@ -178,6 +178,15 @@ public  class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints
 	public String getComputeMaxDelay() {
 		return getAvatarSMDTransitionInfo().getComputeMaxDelay();
 	}
+	
+	
+	public String getFilesToInclude() {
+		return getAvatarSMDTransitionInfo().getFilesToInclude();
+	}
+	
+	public String getCodeToInclude() {
+		return getAvatarSMDTransitionInfo().getCodeToInclude();
+	}
 }
 
 
diff --git a/src/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/ui/avatarsmd/AvatarSMDTransitionInfo.java
index 4dc79ee391eb05b76a3ed974dd9594036239d4a3..cd9cf71974fc804bff2852ba48ea95423b6bfa0f 100755
--- a/src/ui/avatarsmd/AvatarSMDTransitionInfo.java
+++ b/src/ui/avatarsmd/AvatarSMDTransitionInfo.java
@@ -418,11 +418,24 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent {
 		return listOfActions;
 	}
 	
-	public String[] getFilesToInclude() {
-		return filesToInclude;
+	public String getFilesToInclude() {
+		if (filesToInclude == null) {
+			return null;
+		}
+		String ret = "";
+		for(int i=0; i<filesToInclude.length; i++) {
+			ret += filesToInclude[i] + "\n";
+		}
+		return ret;
 	}
-	
-	public String[] getCodeToInclude() {
-		return codeToInclude;
+	public String getCodeToInclude() {
+		if (codeToInclude == null) {
+			return null;
+		}
+		String ret = "";
+		for(int i=0; i<codeToInclude.length; i++) {
+			ret += codeToInclude[i] + "\n";
+		}
+		return ret;
 	}
 }
\ No newline at end of file