diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index e3c4b019a83d2594d8838d8845d8f7807ae1726f..fc47358de64057981a9af979ef2678bec1138b79 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -65,8 +65,8 @@ module OneM2M_Functions {
 		    	v_binding_in := "WSCK";
 		    }
 			
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { mcaPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE1.mcaPort.serialization)] };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { mcaPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE1.mcaPortIn.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { e_mca_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE1.mcaPort.serialization)] };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { e_mca_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE1.mcaPortIn.serialization)] };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf01());
@@ -126,8 +126,8 @@ module OneM2M_Functions {
 		    	v_binding_in := "WSCK";
 		    }
       
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { mcaPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE2.mcaPort.serialization)] };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { mcaPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE2.mcaPortIn.serialization)] };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { e_mca_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE2.mcaPort.serialization)] };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { e_mca_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE2.mcaPortIn.serialization)] };
 
 			//Initialze the IUT
 							
@@ -180,8 +180,8 @@ module OneM2M_Functions {
 				v_binding_in := "WSCK";
 			}
 		      
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { mcaPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE1.mcaPort.serialization)] };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { mcaPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE1.mcaPortIn.serialization)] };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { e_mca_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE1.mcaPort.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { e_mca_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE1.mcaPortIn.serialization)] };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf02_ae1());
@@ -239,8 +239,8 @@ module OneM2M_Functions {
 		        v_binding_in := "WSCK";
 		    }
 		      
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_port))] := { mccPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPort.serialization)] };
-		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))] := { mccPortIn, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPortIn.serialization)] };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_port))] := { e_mcc_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPort.serialization)] };
+		    vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))] := { e_mcc_in_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPortIn.serialization)] };
       
 			v_cSEBaseResource := f_generateLocalResource(-, -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -301,8 +301,8 @@ module OneM2M_Functions {
 		    	v_binding_in := "WSCK";
 		    }
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_port))] := { mccPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPort.serialization)] };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))] := { mccPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_CSE1.mccPortIn.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_port))] := { e_mcc_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPort.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))] := { e_mcc_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_CSE1.mccPortIn.serialization)] };
 			
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf02_cse1());
@@ -355,8 +355,8 @@ module OneM2M_Functions {
 			  v_binding_in := "WSCK";
 			}
       
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { mcaPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE1.mcaPort.serialization)] };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { mcaPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE1.mcaPortIn.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { e_mca_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_AE1.mcaPort.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { e_mca_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_AE1.mcaPortIn.serialization)] };
       
 			//Initialze the IUT
 							
@@ -411,8 +411,8 @@ module OneM2M_Functions {
 				v_binding_in := "WSCK";
 			}
 			
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { mcaPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mcaPort.serialization)] };
-			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { mcaPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_CSE1.mcaPortIn.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_port))] := { e_mca_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mcaPort.serialization)] };
+			vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mca_in_port))] := { e_mca_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_CSE1.mcaPortIn.serialization)] };
 			
 			if(PX_UT_IMPLEMENTED) {
 				map(self:utPort, system:utPort) param (PX_TS_UT);
@@ -477,8 +477,8 @@ module OneM2M_Functions {
 		    	v_binding_in := "WSCK";
 		    }
       
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_port))] := { mccPort, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPort.serialization)] };
-      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))] := { mccPortIn, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_CSE1.mccPortIn.serialization)] };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_port))] := { e_mcc_port, v_host, v_binding, c_serializationLabel[enum2int(PX_TS_CSE1.mccPort.serialization)] };
+      		vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcc_in_port))] := { e_mcc_in_port, v_host, v_binding_in, c_serializationLabel[enum2int(PX_TS_CSE1.mccPortIn.serialization)] };
       
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf04());
@@ -6011,14 +6011,14 @@ module OneM2M_Functions {
 							if((valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int2) and (valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int16)){
 								//Modify default topic to publish a non-registration message
 								f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
-								vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+								f_sendWrapper(p_interfaceIds, p_msgOut);
 								f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
 								return;
 							}
 						} else {//RETRIEVE - UPDATE - DELETE - NOTIFY
 							//Modify default topic to publish a non-registration message
 							f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_));
-							vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+							f_sendWrapper(p_interfaceIds, p_msgOut);
 							f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
 							return;
 						}
@@ -6026,7 +6026,27 @@ module OneM2M_Functions {
 				} 
 			}
 			//TODO: Handle response to normal messages before CSE registration occurs
-			vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
+			f_sendWrapper(p_interfaceIds, p_msgOut);
+		}
+		
+		function f_sendWrapper(in InterfaceIds p_interfaceIds,in template MsgOut p_msgOut) runs on Tester {
+		
+			select (p_interfaceIds) {
+			  
+			  	case (e_mca_port) {
+					mcaPort.send(p_msgOut);	  		
+			  	}
+			  	case (e_mca_in_port) {
+					mcaPortIn.send(p_msgOut);	  		
+			  	}
+				case (e_mcc_port) {
+					mccPort.send(p_msgOut);	  		
+			  	}
+				case (e_mcc_in_port) {
+					mccPortIn.send(p_msgOut);	  		
+			  	}
+			}
+		
 		}
 		
 		/**
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index fe3b31aa6366f1aa0ec20a90e71b2d88fb9cb94a..d2f625fe371f5b80bfc56d79f4138e2e4c141871 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -28,7 +28,7 @@ module OneM2M_TestSystem {
 	}
   
 	type record Interface {
-		OneM2MPort myPort,
+		InterfaceIds myPort,
 		charstring myHost,
 		charstring myProtocolBinding,
 		charstring mySerialization
@@ -41,6 +41,11 @@ module OneM2M_TestSystem {
 		port AdapterControlPort acPort;
 		port InfoPort infoPort;
 		port UpperTesterPort utPort;
+		//Ports for AeSimu/CseSimu
+		port OneM2MPort mcaPort;
+		port OneM2MPort mcaPortIn;
+		port OneM2MPort mccPort;
+		port OneM2MPort mccPortIn;
 		//Common timers
 		timer tc_ac := PX_TAC;
 		timer tc_wait := PX_TWAIT;
@@ -70,9 +75,6 @@ module OneM2M_TestSystem {
 		//Attached components depending on config
 		var AeSimu vc_ae2;
 		var CseSimu vc_cse1;//For CF02 when AeSimu is master
-		//Ports
-		port OneM2MPort mcaPort;
-		port OneM2MPort mcaPortIn;
 		//global variables
 		//About configuration of the component
 		//Resource Index
@@ -84,11 +86,6 @@ module OneM2M_TestSystem {
 	type component CseSimu extends Tester {
 		//Attached components depending on config
 		var AeSimu vc_ae1;//For CF02 when CseSimu is master
-		//Ports
-		port OneM2MPort mcaPort;
-		port OneM2MPort mcaPortIn;
-		port OneM2MPort mccPort;
-		port OneM2MPort mccPortIn;
 		//global variables
 		//About configuration of the component
 		var CseTypeID vc_cseType;	//cseType of the simulated CSE. IN =1, MN = 2