diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn
index e00bd8b..0dd3cad 100644
--- a/hlr/HLR_Tests.ttcn
+++ b/hlr/HLR_Tests.ttcn
@@ -1799,6 +1799,48 @@
 	}
 }
 
+/* Ask proxy HLR about configured sip.voice service, and expect result. */
+private function f_TC_MSLookup_mDNS_service_other_proxy() runs on HLR_ConnHdlr {
+	timer T;
+	var integer id := f_rnd_int(65535); /* mDNS packet ID */
+	var charstring domain := "sip.voice." & hex2str(g_pars.sub.msisdn) & ".msisdn.mdns.osmocom.org";
+
+	f_perform_UL_proxy(g_pars.sub.imsi, g_pars.sub.msisdn, OSMO_GSUP_CN_DOMAIN_CS);
+
+	/* Send mDNS query, expect result */
+	mDNS.send(ts_MSLookup_mDNS_query(id, domain));
+	T.start(1.0);
+	alt {
+	[] mDNS.receive(tr_MSLookup_mDNS_result_IPv4(id, domain, f_enc_IPv4("66.66.66.66"), 5060)) {
+		setverdict(pass);
+		}
+	[] mDNS.receive(MSLookup_mDNS:?) {
+		repeat;
+		}
+	[] T.timeout {
+		setverdict(fail, "Timeout");
+		}
+	}
+}
+testcase TC_MSLookup_mDNS_service_other_proxy() runs on test_CT {
+	var hexstring imsi := f_rnd_imsi('26242'H);
+	var hexstring msisdn := '49161'H & f_rnd_hexstring(7, 9);
+	var HLR_ConnHdlr vc_conn;
+	var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi, msisdn));
+
+	f_init(false, true);
+	f_vty_config(VTY, "mslookup", "mdns bind");
+	f_vty_config2(VTY, {"mslookup", "server"}, "service sip.voice at 66.66.66.66 5060");
+	vc_conn := f_start_handler(refers(f_TC_MSLookup_mDNS_service_other_proxy), pars, true);
+
+	timer T := 3.0;
+	T.start;
+	alt {
+	[] vc_conn.done {}
+	[] T.timeout { setverdict(fail, "Timeout"); mtc.stop; };
+	}
+}
+
 /* TODO:
   * UL with ISD error
   * UL with ISD timeout
@@ -1850,6 +1892,7 @@
 		execute( TC_MSLookup_GSUP_proxy() );
 		execute( TC_MSLookup_mDNS_service_GSUP_HLR_home() );
 		execute( TC_MSLookup_mDNS_service_GSUP_HLR_proxy() );
+		execute( TC_MSLookup_mDNS_service_other_proxy() );
 	}
 };
 
