diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 41b2e2c..5af894a 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -35,7 +35,7 @@
 import from STP_Tests_Common all;
 
 private const integer NR_M3UA := 3;	/* number of M3UA clients in ATS */
-private const integer NR_M3UA_SRV := 1;	/* number of M3UA servres in ATS */
+private const integer NR_M3UA_SRV := 3;	/* number of M3UA servres in ATS */
 
 modulepar {
 	/* STP-side IP addresses */
@@ -68,6 +68,20 @@
 			local_sctp_port := 10002,
 			point_code := 55,
 			routing_ctx := 1055
+		},
+		/* as-client60-norctx */
+		{
+			remote_sctp_port := 2907,
+			local_sctp_port := 11060,
+			point_code := 60,
+			routing_ctx := -
+		},
+		/* as-client61-norctx */
+		{
+			remote_sctp_port := 2907,
+			local_sctp_port := 11061,
+			point_code := 61,
+			routing_ctx := -
 		}
 	};
 	integer mp_recovery_timeout_msec := 2000;
@@ -793,6 +807,60 @@
 	f_clear_m3ua();
 }
 
+/* Test traffic being routed through "server" side STP (M3UA SG), coming back in "client"
+ * side STP (M3UA ASP) which has no routing context set */
+testcase TC_clnt_sg_to_asp_norctx() runs on RAW_M3UA_CT {
+	var OCT4 rctx_sender := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[M3UA_SRV(1)].point_code, 4);
+	var OCT4 pc_receiver2 := int2oct(mp_m3ua_configs[M3UA_SRV(2)].point_code, 4);
+
+	/* activate the sender side (ATS is client to STP in SG role) */
+	f_init_m3ua();
+	f_M3UA_asp_up_act(0);
+
+	/* activate the receiver side (ATS is server to STP in ASP role) */
+	f_init_m3ua_srv();
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(1), rctx := omit);
+	/* activate another instance of STP in ASP role with no routing context */
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(2), rctx := omit);
+
+	f_sleep(1.0);
+
+	/* verify traffic is routed from sender to [sole] receiver for each PC */
+	f_test_traffic(0, rctx_sender, pc_sender, M3UA_SRV(1), omit, pc_receiver);
+	f_test_traffic(0, rctx_sender, pc_sender, M3UA_SRV(2), omit, pc_receiver2);
+
+	f_clear_m3ua();
+}
+
+/* Test traffic being routed through "server" side STP (M3UA SG), coming back in "client"
+ * side STP (M3UA ASP) which has no routing context set */
+testcase TC_clnt_asp_to_sg_norctx() runs on RAW_M3UA_CT {
+	var OCT4 rctx_receiver := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
+	var OCT4 pc_receiver := int2oct(mp_m3ua_configs[0].point_code, 4);
+	var OCT4 pc_sender := int2oct(mp_m3ua_configs[M3UA_SRV(1)].point_code, 4);
+	var OCT4 pc_sender2 := int2oct(mp_m3ua_configs[M3UA_SRV(2)].point_code, 4);
+
+	/* activate the sender side (ATS is client to STP in SG role) */
+	f_init_m3ua();
+	f_M3UA_asp_up_act(0);
+
+	/* activate the receiver side (ATS is server to STP in ASP role) */
+	f_init_m3ua_srv();
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(1), rctx := omit);
+	/* activate another instance of STP in ASP role with no routing context */
+	f_M3UA_CLNT_asp_up_act(M3UA_SRV(2), rctx := omit);
+
+	f_sleep(1.0);
+
+	/* verify traffic is routed from sender to [sole] receiver for each PC */
+	f_test_traffic(M3UA_SRV(1), omit, pc_sender, 0, rctx_receiver, pc_receiver);
+	f_test_traffic(M3UA_SRV(2), omit, pc_sender2, 0, rctx_receiver, pc_receiver);
+
+	f_clear_m3ua();
+}
+
 /* Test if ASPAC / ASPIA of one ASP generates DAVA / DUNA on other ASP */
 testcase TC_ssnm_aspac_dava_aspia_duna() runs on RAW_M3UA_CT {
 	var OCT4 rctx0 := int2oct(mp_m3ua_configs[0].routing_ctx, 4);
@@ -1050,6 +1118,9 @@
 	execute( TC_clnt_sg_to_asp() );
 	execute( TC_clnt_asp_to_sg() );
 
+	execute( TC_clnt_sg_to_asp_norctx() );
+	execute( TC_clnt_asp_to_sg_norctx() );
+
 	execute( TC_clnt_quirk_no_notify_asp_act() );
 	execute( TC_clnt_no_daud_in_asp() );
 	execute( TC_clnt_quirk_daud_in_asp() );
diff --git a/stp/osmo-stp.cfg b/stp/osmo-stp.cfg
index 50c80d3..427eb34 100644
--- a/stp/osmo-stp.cfg
+++ b/stp/osmo-stp.cfg
@@ -53,6 +53,16 @@
   remote-ip 127.0.0.1
   sctp-role client
   role asp
+ asp asp-client60-norctx0 11060 2907 m3ua
+  local-ip 127.0.0.1
+  remote-ip 127.0.0.1
+  sctp-role client
+  role asp
+ asp asp-client61-norctx0 11061 2907 m3ua
+  local-ip 127.0.0.1
+  remote-ip 127.0.0.1
+  sctp-role client
+  role asp
  as as-sender m3ua
   asp asp-sender
   routing-key 1023 23
@@ -63,6 +73,12 @@
  as as-client m3ua
   routing-key 1055 55
   asp asp-client0
+ as as-client60-norctx m3ua
+  routing-key 0 60
+  asp asp-client60-norctx0
+ as as-client61-norctx m3ua
+  routing-key 0 61
+  asp asp-client61-norctx0
 !
 ! IPA AS/ASP:
 !
@@ -116,6 +132,8 @@
   update route 23 16777215 linkset as-sender
   update route 42 16777215 linkset as-receiver
   update route 55 16777215 linkset as-client
+  update route 60 16777215 linkset as-client60-norctx
+  update route 61 16777215 linkset as-client61-norctx
   update route 31 16777215 linkset ipa-as-loadshare-receiver
   update route 33 16777215 linkset ipa-as-override-receiver
   update route 5  16777215 linkset ipa-as-dynamic-asp
