diff --git a/executablecode/Makefile.src b/executablecode/Makefile.src
index fa78915f9679b5cabeae6bffa822fe34d4b875bb..c3bde51c3ed45769343d8ad0785ed0a26f538609 100755
--- a/executablecode/Makefile.src
+++ b/executablecode/Makefile.src
@@ -1 +1 @@
-SRCS = generated_src/main.c generated_src/Wallet.c generated_src/CoffeeMachine.c generated_src/TeaButton.c generated_src/CoffeeButton.c 
\ No newline at end of file
+SRCS = generated_src/main.c generated_src/Block0.c 
\ No newline at end of file
diff --git a/src/avatartranslator/AvatarBlock.java b/src/avatartranslator/AvatarBlock.java
index d43c4102e81983441476b681abea8c0b9419d067..e31ce9682c45700542ddd559cb67c656cdae7c21 100644
--- a/src/avatartranslator/AvatarBlock.java
+++ b/src/avatartranslator/AvatarBlock.java
@@ -440,6 +440,36 @@ public class AvatarBlock extends AvatarElement {
 		return true;
 	}
 	
+	public int getMaxNbOfParams() {
+		if (asm == null) {
+			return 0;
+		}
+		
+		int cpt = 0;
+		
+		for(AvatarStateMachineElement asme :asm.getListOfElements()) {
+			if (asme instanceof AvatarActionOnSignal) {
+				cpt = Math.max(cpt, ((AvatarActionOnSignal)asme).getNbOfValues());
+			}
+		}
+		return cpt;
+	}
+	
+	public int getMaxNbOfMultipleBranches() {
+		if (asm == null) {
+			return 0;
+		}
+		
+		int cpt = 1;
+		
+		for(AvatarStateMachineElement asme :asm.getListOfElements()) {
+			if (asme instanceof AvatarState) {
+				cpt = Math.max(cpt, asme.nbOfNexts());
+			}
+		}
+		return cpt;
+	}
+	
 	
     
 }
\ No newline at end of file
diff --git a/src/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/avatartranslator/toexecutable/AVATAR2CPOSIX.java
index 7d1e719bf432a461fdff28040a4d2ae88d8aab79..01c2af3120cc5927586cedc58ae8e5feaba14b33 100755
--- a/src/avatartranslator/toexecutable/AVATAR2CPOSIX.java
+++ b/src/avatartranslator/toexecutable/AVATAR2CPOSIX.java
@@ -227,6 +227,11 @@ public class AVATAR2CPOSIX {
 		s += makeAttributesDeclaration(_block, _taskFile);	
 		
 		s+= CR + "int __currentState = STATE__START__STATE;" + CR;
+		s+= "request *__req0, *__req1;" + CR;
+		int nbOfMaxParams = _block.getMaxNbOfParams();
+		for(int i=0; i<_block.getMaxNbOfMultipleBranches(); i++) {
+			s+= "int *__params0[" + nbOfMaxParams + "];" + CR;
+		}
 		
 		s+= CR + "char * __myname = (char *)arg;" + CR;
 		
@@ -299,6 +304,22 @@ public class AVATAR2CPOSIX {
 		
 		if (_asme instanceof AvatarActionOnSignal) {
 			AvatarActionOnSignal aaos = (AvatarActionOnSignal)_asme;
+			AvatarSignal as = aaos.getSignal();
+			AvatarRelation ar = avspec.getAvatarRelationWithSignal(as);
+			
+			if (ar != null) {
+				if (aaos.isSending()) {
+					// Putting params
+					for(i=0; i<aaos.getNbOfValues() ;i++) {
+						ret += "__params0[" + i + "] = &" +  aaos.getValue(i) + ";" + CR;
+					}
+					if (ar.isAsynchronous()) {
+						ret += "__req0 = getNewRequest(SEND_ASYNC_REQUEST, 0, 0, 0, " + aaos.getNbOfValues() + ", __params0);" + CR;
+					} else {
+						ret += "__req0 = getNewRequest(SEND_SYNC_REQUEST, 0, 0, 0, " + aaos.getNbOfValues() + ", __params0);" + CR;
+					}
+				}
+			}
 			
 		}
 		
@@ -316,7 +337,7 @@ public class AVATAR2CPOSIX {
 	}
 	
 	public void makeThreadsInMain(boolean _debug) {
-		mainFile.appendToMainCode("/* Threads of tasks */" + CR);  
+		mainFile.appendToMainCode(CR + "/* Threads of tasks */" + CR);  
 		for(TaskFile taskFile: taskFiles) {
 			mainFile.appendToMainCode("pthread_t thread__" + taskFile.getName() + ";" + CR);
 		}