diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn
index 34fa0c1..002d23f 100644
--- a/mgw/MGCP_Test.ttcn
+++ b/mgw/MGCP_Test.ttcn
@@ -5,6 +5,9 @@
 	import from MGCP_CodecPort_CtrlFunct all;
 	import from IPL4asp_Types all;
 
+	/* any variables declared in the component will be available to
+	 * all functions that 'run on' the named component, similar to
+	 * class members in C++ */
 	type component dummy_CT {
 		port MGCP_CODEC_PT MGCP;
 		var boolean initialized := false;
@@ -18,6 +21,10 @@
 		return tid;
 	}
 
+	/* all parameters declared here can be modified / overridden by
+	 * the config file in the [MODULE_PARAMETERS] section. If no
+	 * config file is used or the file doesn't specify them, the
+	 * default values assigned below are used */
 	modulepar {
 		PortNumber mp_local_udp_port := 2727;
 		charstring mp_local_ip := "127.0.0.1";
@@ -25,6 +32,9 @@
 		charstring mp_remote_ip := "127.0.0.1";
 	}
 
+	/* initialization function, called by each test case at the
+	 * beginning, but 'initialized' variable ensures its body is
+	 * only executed once */
 	private function f_init()runs on dummy_CT {
 		var Result res;
 		if (initialized == true) {
@@ -32,8 +42,12 @@
 		}
 		initialized := true;
 
+		/* some random number for the initial transaction id */
 		g_trans_id := float2int(rnd()*65535.0);
 		map(self:MGCP, system:MGCP_CODEC_PT);
+		/* connect the MGCP test port using the given
+		 * source/destionation ip/port and store the connection id in g_conn_id
+		 * */
 		res := f_IPL4_connect(MGCP, mp_remote_ip, mp_remote_udp_port, mp_local_ip, mp_local_udp_port, 0, { udp := {} });
 		g_conn_id := res.connId;
 	}
@@ -164,6 +178,7 @@
 		attributes := attributes
 	}
 
+	/* master template for generating SDP based in template arguments */
 	template SDP_Message ts_SDP(charstring local_addr, charstring remote_addr,
 				    charstring session_id, charstring session_version,
 				    integer rtp_port, SDP_fmt_list fmts,
@@ -261,7 +276,10 @@
 	 * - unsupported LocalConnectionOptions ("b", "a", "e", "gc", "s", "r", "k", ..)
 	 */
 
-	/* build a receive template for receiving a MGCP  message */
+	/* build a receive template for receiving a MGCP message. You
+	 * pass the MGCP response template in, and it will generate an
+	 * MGCP_RecvFrom template that can match the primitives arriving on the
+	 * MGCP_CodecPort */
 	function tr_MGCP_RecvFrom_R(template MgcpResponse resp) runs on dummy_CT return template MGCP_RecvFrom {
 		var template MGCP_RecvFrom mrf := {
 			connId := g_conn_id,
@@ -333,7 +351,9 @@
 		setverdict(pass);
 	}
 
-	/* test CRCX with early bi-directional mode, expect 527 */
+	/* test CRCX with early bi-directional mode, expect 527 as
+	 * bi-diretional media can only  be established once both local and
+	 * remote side are specified, see MGCP RFC */
 	testcase TC_crcx_early_bidir_mode() runs on dummy_CT {
 		var template MgcpCommand cmd;
 		var MgcpResponse resp;
@@ -430,6 +450,7 @@
 		cmd.params := {
 			t_MgcpParConnMode("recvonly"),
 			ts_MgcpParCallId('1234'H),
+			/* p:20 is permitted only once and not twice! */
 			t_MgcpParLocConnOpt("p:20, a:AMR, p:20")
 		}
 		resp := mgcp_transceive_mgw(cmd, rtmpl);
@@ -512,6 +533,7 @@
 		setverdict(pass);
 	}
 
+	/* Test (valid) CRCX followed by (valid) DLCX */
 	testcase TC_crcx_and_dlcx() runs on dummy_CT {
 		var template MgcpCommand cmd;
 		var MgcpResponse resp;
