diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn
index 44e713e..bb417a5 100644
--- a/hlr/HLR_Tests.ttcn
+++ b/hlr/HLR_Tests.ttcn
@@ -210,6 +210,12 @@
 	}
 }
 
+function f_vty_subscr_update_msisdn(HlrSubscriber sub, hexstring new_msisdn) runs on test_CT {
+	var charstring prefix := valueof(t_subscr_prefix(sub.imsi));
+	f_vty_transceive_match(VTY, prefix & "update msisdn " & hex2str(new_msisdn),
+				pattern "% Updated subscriber *");
+}
+
 /* perform 'delete' on subscriber */
 function f_vty_subscr_delete(HlrSubscriber sub) runs on test_CT {
 	var charstring prefix := valueof(t_subscr_prefix(sub.imsi));
@@ -394,6 +400,40 @@
 	setverdict(pass);
 }
 
+/* VTY changes to MSISDN should result in ISD to current VLR */
+testcase TC_vty_msisdn_isd() runs on test_CT {
+	var HlrSubscriber sub;
+	var hexstring new_msisdn;
+	var GSUP_PDU res;
+	timer T := 5.0;
+
+	f_init();
+
+	/* Create Subscriber */
+	sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1"));
+	f_vty_subscr_create(sub);
+
+	/* Perform UpdateLocation (VLR now known to HLR) */
+	res := f_perform_UL(sub.imsi, sub.msisdn);
+
+	/* Then change IMSI via VTY */
+	new_msisdn := '49161'H & f_rnd_hexstring(7, 9);
+	f_vty_subscr_update_msisdn(sub, new_msisdn);
+	/* And expect InsertSubscriberData as result */
+	T.start;
+	alt {
+	[] GSUP.receive(tr_GSUP_ISD_REQ(sub.imsi, new_msisdn)) {
+		GSUP.send(ts_GSUP_ISD_RES(sub.imsi));
+		sub.msisdn := new_msisdn;
+		setverdict(pass);
+		}
+	[] GSUP.receive { repeat; }
+	[] T.timeout {
+		setverdict(fail, "Timeout waiting for ISD.req");
+		}
+	}
+}
+
 /* TODO:
   * UL with ISD error
   * UL with ISD timeout
@@ -415,6 +455,7 @@
 	execute( TC_gsup_ul_unknown_imsi() );
 	execute( TC_gsup_ul() );
 	execute( TC_vty() );
+	execute( TC_vty_msisdn_isd() );
 };
 
 };
